gpt4 book ai didi

MYSQL反规范化数据查找和删除重复项

转载 作者:行者123 更新时间:2023-11-30 23:13:46 25 4
gpt4 key购买 nike

我有示例数据

ID DAY ORDER TIME PRODUCT
1 1 1 1 1
2 1 1 1 2
3 1 1 1 3
4 1 2 2 1
5 1 2 2 2
6 1 2 2 3
7 1 2 *3* 1
8 1 2 *3* 2
9 1 2 *3* 3

我想防止在同一天的不同时间收到多个订单。如果我在 DAY、ORDER、TIME 上设置唯一索引,无论如何我都无法插入多个时间,但我想禁用多个不同的时间。这对 mysql 可行吗?

我能否找到在同一天和订单中有多个不同时间值的所有记录并删除它们?

在这种情况下,我想用 SQL 查询删除记录 7,8 ad 9,因为它是重复插入的 ORDER。

我不想规范化表,我会坚持使用这种数据库结构。

非常感谢

最佳答案

您可以使用带有 join 子句的 delete 来查找重复项并删除它们:

delete
from t join
(select day, "order", min(time) as tokeeptime
from t
group by day, "order"
) tokeep
on t.day = tokeep.day and t."order" = tokeep."order" and t.time <> tokeeptime;

关于MYSQL反规范化数据查找和删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18788554/

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