我正在运行查询以删除重复的条目。它在没有LIMIT语句的情况下工作,但会使服务器超载。我想使用LIMIT语句批处理它。
DELETE t1
FROM data as t1
join data as t2
WHERE t1.type = t2.type
AND t1.timestamp = t2.timestamp
LIMIT 100
并且LIMIT语句收到错误:
错误1064(42000):您的SQL语法有错误;检查与MariaDB服务器版本对应的手册,以便在第6行的“LIMIT 100”附近使用正确的语法
答案 0 :(得分:2)
您无法直接使用您可以在选择
中使用的删除限制 DELETE data
FROM data as t1
join (
select distinct type, timestamp from data limit 100
) t2 on t1.type = t2.type AND t1.timestamp = t2.timestamp
答案 1 :(得分:0)
多表DELETE
和UPDATE
不允许LIMIT
子句。这是错误消息的原因。解决方法...
要执行大量DELETEs
(或UPDATEs
),请在块中循环遍历表。 This讨论了详细信息。为了提高效率,它使用PRIMARY KEY
,以便在桌面上行走是有效的。