1)找到1個對象是否包含相同的用戶名和密碼,我已經輸入,表1
2)如果有包含相同的用戶名和密碼的對象,然後
3)執行INSERT語句中表2
到目前爲止,我已經得到了最好的是:
(CASE WHEN table1 WHERE Username='myusername' AND Password='mypassword'
THEN (INSERT INTO table2(things) VALUES('mythings'))
ELSE Null END)
1)找到1個對象是否包含相同的用戶名和密碼,我已經輸入,表1
2)如果有包含相同的用戶名和密碼的對象,然後
3)執行INSERT語句中表2
到目前爲止,我已經得到了最好的是:
(CASE WHEN table1 WHERE Username='myusername' AND Password='mypassword'
THEN (INSERT INTO table2(things) VALUES('mythings'))
ELSE Null END)
您可以從table1
中選擇要插入的字符串,並將條件移至where
子句。這樣,你有一個聲明,表示任何一個插入記錄,如果用戶名和passowrd匹配,或沒有記錄,如果他們不這樣做:
INSERT INTO table2(things)
SELECT 'mythings'
FROM table1
WHERE Username='myusername' AND Password='mypassword'
這不符合要求「找到1個對象...」 - 也許增加一個「TOP 1」(雖然這仍然不完全正確) –
我正在做一個(可能假)假設用戶名和密碼組合是唯一的 – Mureinik
是的,每個用戶名和密碼的組合是唯一的,所以它真的只包含1個。 我試過你的建議,但被給出錯誤「#1241-操作數應該包含1列」 –
如果您在腳本或存儲過程使用IF
,例如這樣做
IF EXISTS (SELECT 1 FROM table1 WHERE Username='myusername' AND Password='mypassword')
BEGIN
INSERT INTO table2 VALUES('mythings')
END
我使用的服務器不允許使用「EXISTS」 –
您使用的服務器是什麼?你已經用sql-server標記了這個問題 – SQLBadPanda
IF EXISTS (SELECT 1 FROM Tabel1 WHERE Username = @Username AND Password= @Password))
BEGIN
INSERT INTO Table2 Values(@Username,@Password)
END
我正在使用的服務器不允許我使用「EXISTS」 –
MySQL或SQL服務器? – Sami
我的服務器是一個SQL服務器 –