[英]MYSQL Error on IF NOT EXISTS/WHERE NOT EXISTS
我在我的SQL查詢中使用了一個簡單的IF NOT EXISTS / WHERE NOT EXISTS語句(我試過兩個)而且我總是得到一個mysql錯誤,不明白為什么。 嘗試使用不同的引號,檢查我的MySQL服務器版本等。
這些是我使用的陳述
IF NOT EXISTS (SELECT * FROM kurs_users WHERE kurs_users.uid = 'someuser')
BEGIN
INSERT INTO kurs_users(uid) VALUES ('someuser')
END
和
INSERT INTO kurs_users
VALUES ('', 'someuser')
WHERE NOT EXISTS (SELECT * FROM kurs_users WHERE uid = 'someuser');
錯誤消息:
您的SQL語法有錯誤; 查看與您的MySQL服務器版本對應的手冊,以便在第1行的“WHERE NOT EXISTS(SELECT * FROM kurs_users WHERE uid ='someuser')'附近使用正確的語法
values
語句不允許where
子句。 將其更改為insert . . . select
insert . . . select
insert . . . select
。 但是,在MySQL中,如果沒有from
,則不能有where
子句,因此請使用子查詢:
INSERT INTO kurs_users
select col1, col2
from (select '' as col1, 'someuser' as col2) t
WHERE NOT EXISTS (SELECT * FROM kurs_users WHERE uid = 'someuser');
我還建議您在insert
語句中明確列出列:
INSERT INTO kurs_users(UnnamedColumn, UserName)
select col1, col2
from (select '' as col1, 'someuser' as col2) t
WHERE NOT EXISTS (SELECT * FROM kurs_users WHERE uid = 'someuser');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.