gpt4 book ai didi

mysql - 使用 join 和 limit 删除 mysql

转载 作者:行者123 更新时间:2023-11-29 08:36:23 26 4
gpt4 key购买 nike

我有这样的sql查询:

DELETE `LINK_LA_TYP`
FROM
`LINK_LA_TYP`
JOIN `LINK_ART` ON `LINK_LA_TYP`.LAT_LA_ID = `LINK_ART`.LA_ID
JOIN `ARTICLES` ON `LINK_ART`.LA_ART_ID = `ARTICLES`.ART_ID
WHERE
(
`ARTICLES`.ART_SUP_ID IN(
10008,
10439,
11005,
...
...
441
)
)
LIMIT 50000;

但是我收到错误....从mysql-doc我得到,使用delete+join+limit我会收到错误....

但是我如何更改我的代码? (对于 mysql 和 sql 来说都是新的)。如何更改我的代码?限制要删除的行....

也在 phpmyadmin 中我得到

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 50' at line 1

最佳答案

摘自文档 对于多表语法,DELETE 从每个 tbl_name 中删除满足条件的行。在这种情况下,不能使用 ORDER BY 和 LIMIT。 dev.mysql.com/doc/refman/5.0/en/delete.html – Michael Berkowski 2 分钟前

我同意这一点。此外,DELETE 命令不能有 LIMIT 子句。另外,一般来说,您不能从多个 JOINed 表中进行 DELETE。

也许可以使用子选择来重写语句,例如:

delete from LINK_LA_TYP
where LAT_LA_ID in
(select LA_ID
from LINK_ART
join ARTICLES on ARTICLES.ART_ID = LINK_ART.LA_ART_ID
where ARTICLES.ART_SUP_ID in (...));

关于mysql - 使用 join 和 limit 删除 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15099280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com