当我尝试使用order by asc和limit=2从表中删除一些行(从联接表中获得的行)时(例如:如果我获得10条记录,则需要删除前2条记录)。
但是得到错误
sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以获得正确的语法,以便在第9行的“order by sales\u flat\u quote.entity\u id asc limit 2”附近使用
下面是我的代码:
DELETE table1,table2,table3
FROM table1
LEFT JOIN table2 on table1.entity_id=table2.quote_id
LEFT JOIN table3 on table1.entity_id=table3.quote_id
WHERE table1.entity_id <= 101
ORDER BY table1.entity_id ASC LIMIT 2;
3条答案
按热度按时间cuxqih211#
您正在执行多表删除操作,文档说明如下:
不能在多表删除中使用order by或limit。
一些解决方法最终可以通过嵌套选择实现。请勾选类似问题的答案。
zlwx9yxi2#
如果临时表是可以接受的,你可以尝试这样的东西。不是极好的,而是直接的解决方案。
5vf7fwbs3#
解决方案: