加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

mysql – 怎样编写SQL查询来检测一再的主键?

发布时间:2021-05-24 02:41:46 所属栏目:编程 来源:网络整理
导读:假设我想要变动表,以便我的主键如下 user_id,round,tournament_id 今朝我必要整理一再项.查找全部一再项的查询是什么? 这是针对MySQL的,我但愿看到一再的行最佳谜底从技能上讲,您不必要这样的查询;任何值得盐的RDBMS都不应承插入会在表中发生一再主键的行.

假设我想要变动表,以便我的主键如下

user_id,round,tournament_id

今朝我必要整理一再项.查找全部一再项的查询是什么?

这是针对MySQL的,我但愿看到一再的行 最佳谜底 从技能上讲,您不必要这样的查询;任何值得盐的RDBMS都不应承插入会在表中发生一再主键的行.这样的工作违背了主键的界说.

可是,假如您要在将主键应用于包括这些列的表之前编写查询以查找这些列组的一再项,那么这就是您想要的:

select
    t.user_id,t.round,t.tournament_id
from
    table as t
group by
    t.user_id,t.tournament_id
having
    count(*) > 1

上面只会为您提供组合具有多行的列的组合,假如要查察行中的全部列,则执行以下操纵:

select
    o.*
from
    table as o
        inner join (
            select
                t.user_id,t.tournament_id
            from
                table as t
            group by
                t.user_id,t.tournament_id
            having
                count(*) > 1
        ) as t on
            t.user_id = o.user_id and
            t.round = o.round and
            t.tournament_id = o.tournament_id

请留意,假如必要多次行使功效,也可以建设temporary table并插手.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读