回答

收藏

多表删除限制

技术问答 技术问答 188 人阅读 | 0 人回复 | 2023-09-12

我正在尝试运行以下查询,但会引发错误。
) U; v+ ^7 P( r/ g4 S8 {DELETE b
) w( `6 W  ~1 O% MFROM parim_lang a
9 `( b, a  p4 e2 P9 VJOIN parim_lang b
9 s$ l5 y( Y7 c5 D- W: K  C/ Q    ON b.lang_hash = a.lang_hash
$ P( l0 R7 H% V/ H! I5 `    AND b.lang_language = SUBSTRING(a.lang_google_translation, LOCATE('-', a.lang_google_translation) + 1)2 k1 l) b9 }' z6 q
WHERE a.lang_google_translation REGEXP '^[a-z]+-[a-z]+'
7 |' n5 {# k( {! zLIMIT 206 A7 }0 B2 J  f5 j; Q0 J
没有限制,此查询有效。
/ i8 }( ], D3 H$ w7 m6 t+ Z: q6 Z9 y错误看起来像这样:! K* z0 i5 S. V/ ~
6 b2 j' L6 E5 C/ N1 Q+ [7 Z$ N6 \
SQL错误(1064):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第7行的“ LIMIT 20”附近使用5 o( \- B/ l0 L& S6 @* t$ @5 [

& S- U2 c0 [% o发现了这一点:1 v* }; \9 Z5 R+ w) q. R! }
) [+ s* Y0 E: ?8 G9 J
对于多表语法,DELETE从每个tbl_name中删除满足条件的行。在这种情况下,不能使用ORDER BY和LIMIT。5 l0 i- _3 p) C/ m

8 [/ e0 ~! z/ _& Q7 v+ f我有任何解决方法吗?
# E" x( A; T0 k6 Z: g  N                : ~/ I" p1 B( v3 |' r
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则