我有这样的查询:
IF EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) THEN
DELETE FROM table2 WHERE col2 = ?
END IF
但我不知道为什么上面的查询不起作用。这也不起作用:
IF EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) BEGIN
DELETE FROM table2 WHERE col2 = ?
END
MySQL告诉我有一个语法错误,我该如何解决?
答案 0 :(得分:9)
您可以将条件移动到WHERE
的{{1}}子句中以达到相同的效果,如下所示:
DELETE
请注意,这两个DELETE FROM table2
WHERE col2 = ?
AND EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1)
已经切换了与原始查询相关的位置。