gpt4 book ai didi

mysql - 如何规范化具有重复值的 MySQL 表

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:57 28 4
gpt4 key购买 nike

我有 2 table 水果和颜色。

在水果表中,cid 列引用了颜色表中的 c_id,但问题是颜色表有重复的颜色名称:

enter image description here

在 MySQL 中是否有一种有效的方法来删除重复的颜色行并相应地更新 foods 表中的 cid 以便结果是这样的?

enter image description here

最佳答案

假设表之间存在外键约束,首先需要updatefruit。为此,您可以加入 表以获取颜色名称,然后使用相关子查询检索该颜色的最小 c_id:

update fruit f
inner join color c on f.cid = c.c_id
set f.cid = (select min(c_id) from color c1 where c1.name = c.c_name)

然后您可以安全地删除重复的 color,同时保留具有最低 c_id 的那个:

delete c
from color c
inner join color c1 on c1.c_name = c.c_name and c1.c_id < c.c_id

关于mysql - 如何规范化具有重复值的 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58402468/

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