对具有Limit和ORDERBY的单个表使用delete语句时,其工作正常
DELETE FROM test_users_table ORDER BY test_users_table_cname DESC
LIMIT 5
我们是否也可以使用ORDER BY AND LIMIT选项在多个表中实现删除..
以下是我正在使用的内容
DELETE test_users_table, test_user_data_table FROM test_users_table
JOIN test_user_data_table
ON test_users_table.table1_id = test_user_data_table.table2_userid
ORDER BY test_users_table.cname DESC
LIMIT 5
对于多个表,它的抛出错误
答案 0 :(得分:2)
根据MySQL documentation,这是从多个表中删除的语法:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]
另外它说:
对于多表语法,DELETE从每个tbl_name中删除满足条件的行。 在这种情况下,无法使用ORDER BY和LIMIT。
因此,您可以从多个表中删除。但是,您无法直接在其中使用LIMIT
关键字。
您查询的假设语义是什么?该语句是否应删除表A中的前5个条目,表B或每个表中的5个条目?此信息可能有助于重新构建您的查询。