Print

mysql查询字段重复的数据

问:MYSQL过滤表中某几个字段重复的数据
  1. 答:场景:表中包含有group_id,worker_id,status字段,查询这三个字段是否存在重复的数据。
    查找某个人在某个班组内存在多个status为0的数据
    查找某个人在某个班组内存在多个status为0的数据,将最小的id选出来
    查找某个人在某个班组内存在多个status为0的数据,将最小的id选出来,并设置status为1
    将查询查询结果作为where in的条件,需要select的结果再通过一个中间表select多一次,否则会报You can't specify target table for update in FROM clause。
问:mysql查询某字段相同的记录
  1. 答:select * from 表名 where match_id in (select match_id from 表名 where team_id='a' or team_id='b' group by match_id)
  2. 答:感觉你的描述有点乱,总结一下
    已知比赛双方队伍id,要查询比赛信息。
    按照你给的表结构,猜测,应该有三个表
    比赛记录表(match_record),比赛基本信息表(match),参赛队伍表(team),你给出了match_record表,现在已知比赛队伍id,要查询比赛信息。
    select * from match_record a,match b
    where a.match_id=b.id
    and a.team_id in('a','b')
    这样可以查出a和b参加的比赛信息,应该会查出多条,可以在增加比赛时间等限制,确定到底想查的是哪场比赛。知道是哪场比赛了,在关联队伍表或者其他表,在查询别的信息。
  3. 答:查询user表里面user_name字段值的重复次数
    select user_name,count(*) as count from user group by user_name having count>1;
问:如何查询mysql数据库中部分重复的数据
  1. 答:你是要查找数据库中某个字段下的相同数据吧,我给你写2个例子
    (数据库执行效率高)
    select * from dbo.MediafileInfo as a where
    (VideoDownUrl IN (SELECT VideoDownUrl FROM MediafileInfo AS B WHERE A.ProgramID <> B.ProgramID))
    (数据库执行效率低)
    SELECT *
    FROM MediafileInfo AS A
    WHERE (SELECT COUNT(*) FROM MediafileInfo WHERE VideoDownUrl=A.VideoDownUrl)>1

本文来源: https://www.lw00.cn/article/2ddb8cfee3405debe0190ba2.html