gpt4 book ai didi

Mysql如果未完成则删除所有相同ID的记录

转载 作者:行者123 更新时间:2023-11-29 07:04:32 25 4
gpt4 key购买 nike

让我解释一下我的问题,这是我的 table

Statuses           | RESPONSEOID

Solicita Despacho 4432
Despachado 4432
En Camino 4432
En el Lugar 4432
Terminado 4432
Finalizado 4432
Solicita Despacho 0224
Despachado 0224
En el Lugar 0224
Solicita Despacho 5585
Despachado 5585
En Camino 5585
En el Lugar 5585
En el Lugar 5585
Terminado 5585
Finalizado 5585
Solicita Despacho 1824
Despachado 1824
En Camino 1824
En el Lugar 1824
Solicita Despacho 4688
Terminado 4688
Finalizado 4688
Solicita Despacho 1430
Despachado 1430
Terminado 1430
Finalizado 1430

这是一个包含事件的表(例如 ID 4432 只是一个具有多种状态的事件)

考虑到这一点,我需要解决两个问题,

1) 我必须删除所有状态不为 Finalizado(已完成)的事件(包括所有状态和行)

2)我必须删除具有重复状态的所有事件(包括所有状态和行)

因此,在上面的示例中,我必须删除问题一的所有responseoid = 0224和1824以及问题二的responseoid = 5585的所有记录

但考虑到该表大约有 11500000 行。

我不在乎这是否可以通过一两个查询来实现

提前致谢

最佳答案

对于第一个任务,请尝试此查询 -

DELETE t1
FROM table t1
JOIN (SELECT RESPONSEOID FROM table
GROUP BY RESPONSEOID
HAVING(COUNT(IF(Statuses = 'Finalizado', 1, null))) = 0
) t2
ON t1.RESPONSEOID = t2.RESPONSEOID;

对于第二个,您应该重新填充表 -

INSERT INTO temp_table SELECT DISTINCT * FROM table;

如果有 ID 字段,则可以删除重复项而不重新填充。

关于Mysql如果未完成则删除所有相同ID的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250163/

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