簡體   English   中英

在IF NOT MISQL /不存在的情況下MYSQL錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM