【问题标题】:insert query on mysql - WHERE NOT EXISTS在mysql上插入查询-不存在的地方
【发布时间】:2018-05-24 12:37:37
【问题描述】:

我收到以下错误:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'WHERE NOT EXISTS ( SELECT * FROM training2subjects WHERE trainingID = 3 AND subj' 附近使用正确的语法

当我在 mysql 上吃午饭时 -

INSERT INTO training2subjects ( trainingID, subjectID ) 
VALUES ( 3, 5 ) 
WHERE NOT EXISTS ( 
        SELECT * 
        FROM training2subjects 
        WHERE trainingID = 3 
        AND subjectID = 5 
        LIMIT 0,1 
    )

当我运行子查询时,它工作正常

SELECT * 
        FROM training2subjects 
        WHERE trainingID = 3 
        AND subjectID = 5 
        LIMIT 0,1

我只想在相同的数据不存在时插入

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你需要使用INSERT INTO - SELECT:

    INSERT INTO training2subjects ( trainingID, subjectID ) 
    SELECT 3, 5 
    WHERE NOT EXISTS (SELECT * 
                      FROM training2subjects 
                      WHERE trainingID = 3 AND subjectID = 5);
    

    DBFiddle Demo

    【讨论】:

    • 嗨。不,仍然错误 - #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT * FROM training2subjects ' at line 3
    猜你喜欢
    • 2013-03-15
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2020-12-16
    • 2014-12-14
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    相关资源
    最近更新 更多