如果找不到列值,如何使用单个查询插入表。 例如/我想仅在未找到此用户名时插入新用户
我现在正在做的是问题1查询来检查现有的, 然后另一个查询,如果没有找到。共2个查询
INSERT INTO friends (memberID) SELECT 1 WHERE NOT EXISTS (SELECT memberID FROM friends WHERE memberID = 1)
答案 0 :(得分:0)
这个怎么样:
INSERT INTO YourTable (UserName)
SELECT x
FROM (SELECT 'New User Name' AS x) a
WHERE x NOT IN(SELECT UserName
FROM YourTable)
答案 1 :(得分:0)
您只需添加FROM DUAL
INSERT INTO friends
(memberid)
SELECT 1
FROM dual
WHERE NOT EXISTS (SELECT memberid
FROM friends
WHERE memberid = 1)
答案 2 :(得分:0)
由于您只想要一个具有给定值的行,您应该在表上使用UNIQUE约束强制执行该操作,例如:
ALTER TABLE friends ADD UNIQUE (memberID);
执行此操作后,您只需将IGNORE关键字添加到insert语句中,它就不会报告错误,如果已存在,则不会插入重复的行。
INSERT IGNORE INTO friends(memberID) VALUES(1);