掉落ORDER BY
+ LIMIT
,或在JOIN
,一切都是桃子.把它们放在一起,我似乎释放了海妖.任何可以解雇的人?
DELETE table1 AS t1
FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id = t2.id
WHERE t2.field = 'something'
ORDER BY t1.id DESC
LIMIT 5
Run Code Online (Sandbox Code Playgroud)
(使用别名删除)
我也尝试过没有别名并放弃WHERE
,但无济于事.始终是语法错误" near 'ORDER BY...
".
ype*_*eᵀᴹ 10
来自Mysql文档: DELETE
对于多表语法,DELETE从每个
tbl_name
满足条件的行中删除.在这种情况下,不能使用ORDER BY和LIMIT.
在你的情况下,我认为这是有效的:
DELETE
FROM table1
WHERE EXISTS
( SELECT t2.id
FROM table2 AS t2
WHERE t2.id = table1.id
AND t2.field = 'something'
)
ORDER BY id DESC
LIMIT 5
Run Code Online (Sandbox Code Playgroud)