我正在尝试运行以下查询,但它会抛出错误。
DELETE b
FROM parim_lang a
JOIN parim_lang b
ON b.lang_hash = a.lang_hash
AND b.lang_language = SUBSTRING(a.lang_google_translation, LOCATE('-', a.lang_google_translation) + 1)
WHERE a.lang_google_translation REGEXP '^[a-z]+-[a-z]+'
LIMIT 20
无限制此查询有效..
错误如下所示:
SQL错误(1064):您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第7行的“LIMIT 20”附近使用正确的语法
发现这个:
对于多表语法,DELETE从每个tbl_name中删除满足条件的行。在这种情况下,不能使用ORDER BY和LIMIT。
我有解决方法吗?
答案 0 :(得分:2)
尝试:
DELETE
FROM parim_lang a
WHERE a.lang_hash IN (
SELECT a.lang_hash
FROM parim_lang a
JOIN parim_lang b
ON b.lang_hash = a.lang_hash
AND b.lang_language = SUBSTRING(a.lang_google_translation, LOCATE('-', a.lang_google_translation) + 1)
WHERE a.lang_google_translation REGEXP '^[a-z]+-[a-z]+' ) LIMIT 20