为什么这个SQL不正确(MySQL)?

时间:2016-04-26 20:00:42

标签: php mysql sql

我有以下查询:

"DELETE * FROM Participations WHERE scheduleId IN (SELECT id FROM Schedule WHERE meetingId = :meetingId) AND userId = :userId"

我正确地使用PDO分配变量。

作为回应,我得到了:

  

SQLSTATE [42000]:语法错误或访问冲突:1064

     

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在' * FROM参与WHERE scheduleId IN附近使用正确的语法(SELECT id FROM Schedule WHERE meeting' at line 1}

我用SELECT替换第一个DELETE并且查询正确完成就足够了。 此外,当我直接在phpMyAdmin中测试时,使用DELETE的相同查询工作正常。

我很困惑....

2 个答案:

答案 0 :(得分:1)

使用DELETE FROM(请注意缺少*)。

答案 1 :(得分:1)

错误消息清楚地表明它是'*'附近的语法错误。

从删除声明中删除*

DELETE FROM Participations WHERE scheduleId IN 
           (SELECT id FROM Schedule WHERE meetingId = :meetingId) AND userId = :userId