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服务器 –