gpt4 book ai didi

mysql - 如何通过 id 删除行,由 group_concat 获取

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:37 26 4
gpt4 key购买 nike

我想从表中删除一些行。

首先,我尝试使用子查询,但在子查询中使用同一个表时,我无法从表中删除数据。

我试过用另一种方式做到这一点。

set @list_id_remove = (select group_concat(mra.media_id) from movie AS m
right join media AS mra ON m.id = mra.media_id
where m.id is null);

delete from media
where media_id IN (@list_id_remove);

但在这种情况下,查询只删除了 1 行。我觉得麻烦 - 是 group_concat 删除字符串,我需要整数列表。

最佳答案

您似乎想从 media 中删除 movie 中不存在相应记录的地方。您可以将此作为单个查询来执行。

delete from media 
where not exists (select 1 from movie m where m.id = media.media_id);

movie.id 字段对应于 media.media_id 对我来说确实很奇怪,但这就是您的原始查询的编写方式。

编辑:

至于你的问题,你可以把delete写成:

delete from media
where find_in_set(media_id, @list_id_remove) > 0;

关于mysql - 如何通过 id 删除行,由 group_concat 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21632471/

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