小编典典

如何在2列中查找重复项而不是1

mysql

我有一个MySQL数据库表,其中有两列令我感兴趣。它们各自可以分别具有重复项,但是它们绝不能具有相同的值。

stone_id只要每个upsharge标题不同,就可以重复,反之亦然。但是例如说stone_id=
412和upcharge_title=“蓝宝石”,则该组合仅应发生一次。

还行吧:

stone_id = 412 upcharge_title = "sapphire"
stone_id = 412 upcharge_title = "ruby"

这不行:

stone_id = 412 upcharge_title = "sapphire"
stone_id = 412 upcharge_title = "sapphire"

是否有一个查询,将在两个字段中找到重复项?如果可能的话,是否有办法将我的数据库设置为不允许这样做?

我正在使用MySQL 4.1.22版


阅读 302

收藏
2020-05-17

共1个答案

小编典典

您应该在两个字段之间设置一个复合键。每行需要一个唯一的stone_id和upcharge_title。

至于找到现有重复项,请尝试以下操作:

select   stone_id,
         upcharge_title,
         count(*)
from     your_table
group by stone_id,
         upcharge_title
having   count(*) > 1
2020-05-17