我正在尝试运行以下查询,但会引发错误。
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。
我有任何解决方法吗?
尝试 :
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