現在我已經忍受了兩個小時了。我想選擇或插入一條記錄。如果記錄存在,則選擇他的ID,否則插入它並獲取新插入的ID。現在我試圖運行這個,但我仍然得到一個錯誤MySql如果存在select ELSE insert
SELECT CASE WHEN (SELECT COUNT(*) FROM Domains WHERE Domain = @domain)>0
THEN
(SELECT Domain_ID FROM Domains WHERE Domain = @domain)
ELSE
INSERT INTO Domains(Domain_ID,Domain,Disabled,Description) VALUES(@Domain_ID,@Domain,@Disabled,@Description);
爲什麼要查詢count(*)?只是查詢域匹配,如果會有非空結果,則返回它,否則插入數據。 – Zaffy
你是否試圖在程序中做到這一點? – JHS
我仍然得到了MySQL語法的懸念(所以我不會把它作爲答案),但我相信你需要沿着'IF EXISTS(SELECT 1 FROM DOMAIN WHERE Domain = @domain)'的方向行事。 ..而不是'SELECT CASE WHEN(SELECT COUNT(*)FROM Domains WHERE Domain = @domain)> 0' – LittleBobbyTables