精华内容
下载资源
问答
  • Mysql 其中一个字段去重,显示所有信息
    2021-04-07 10:49:04

    Mysql 其中一个字段去重,显示所有信息

    使用 DISTINCT 关键字可以去掉查询中某个字段的重复记录。(无法显示改记录的其他信息)

    SELECT DISTINCT(name) FROM tb_name
    

    思路先查询重复的记录,根据最新记录id获取所有信息(比较耗时)

    SELECT  *  FROM  tb_name  WHERE  ID  IN  ( SELECT   max(ID)  FROM tb_name  GROUP  BY name)
    
    更多相关内容
  • 在使用MYSQL的select distinct name from table语句时,输出的只是去重之后name字段的信息,而希望的是能够输出考生ID、考试时间、考试成绩等的信息。使用select distinct name, sorce from table结果发现去重不起...

    在使用MYSQL的select distinct name from table语句时,输出的只是去重之后name字段的信息,而希望的是能够输出考生ID、考试时间、考试成绩等的信息。使用

    select distinct name, sorce from table

    结果发现去重不起作用,因为MYSQL认为要sorce和name同时重复才会去除。 最终解决办法如下:

    select *, count(distinct name) from table group by name

    如果SQL语句还有limit,order by等条件,必须放在group by后面。 这样就达到了既去重,又能够输出更多字段信息的目的.

    SELECT语句,去除某个字段的重复信息,例如:

    表名:table

    id uid username message dateline

    1 6  a    111    1284240714(时间戳)

    2 6  a    222    1268840565

    3 8  b    444    1266724527

    4 9  c    555    1266723391

    执行语句(去除username字段重复信息并按时间排序):

    SELECT *

    FROM table a INNER JOIN ( SELECT max( dateline ) AS dateline

    FROM table GROUP BY uid ) b ON a.dateline = b.dateline

    GROUP BY id ORDER BY a.dateline DESC

    结果:

    id uid username message dateline

    1 6  a    111    1284240714(时间戳)

    3 8  b    444    1266724527

    4 9  c    555    1266723391

    此语句用于显示最新记录信息,在一个区域内不允许某个信息(例如:用户)同时出现多次(一次以上)。

    后记:效率问题

    开始用了个这语句:

    select * from table where dateline IN ( select max(dateline) from table GROUP BY uid ) ORDER BY dateline DESC

    IN:当处理数据量比较大的时候,就没效率可言了,所以优化成内联,计算下快了6倍多。。。

    继续条效率就加索引了~~

    展开全文
  • mysql 去重查询

    2020-11-27 21:48:58
    <p>id aid bid cid ...我想根据cid去重查询该怎么写sql语句? <p>1 1 2 1 2 1 2 1 3 2 1 1 4 2 1 1  类似于这4条数据可以视为一条,该怎么写sql语句?</p>
  • mysql 去重留一

    2021-04-21 04:08:24
    首先先分析一下 我们现在的目的 是 查询到这俩张表的所有数据 然后进行删除重复记录 每条数据只保留一条第一步:查询以下俩张表的重复记录 (关键字段重复>1)ks_examcity 、 ks_examdistrictselect * from ks_...

    首先先分析一下 我们现在的目的 是 查询到这俩张表的所有数据 然后进行删除重复记录 每条数据只保留一条

    第一步:

    查询以下俩张表的重复记录 (关键字段重复>1)

    ks_examcity 、 ks_examdistrict

    select * from ks_examcity group by examSubjectID,city,province having count(examSubjectID)>1;

    select * from ks_examdistrict group by examSubjectID,district,city having count(examSubjectID)>1;

    第二步:

    查询这两张表中 每条记录的第一条记录 (每条记录重复中的第一条 id最小)

    select min(id)

    from ks_examcity

    group by examSubjectID, city, province

    having count(examSubjectID)> 1

    SELECT min(id)

    FROM `ks_examdistrict`

    GROUP BY `examSubjectID`, `district`, `city`

    HAVING COUNT(`examSubjectID`)> 1

    第三步:

    联查: 查询所有的重复数据以及重复记录中第一条以外的数据

    select `examSubjectID`

    from ks_examcity

    group by examSubjectID, city, province

    having count(examSubjectID)> 1 )

    and id not in(

    select min(id)

    from ks_examcity

    group by examSubjectID, city, province

    having count(examSubjectID)> 1

    SELECT `examSubjectID`

    from `ks_examdistrict`

    group by `examSubjectID`, `district`, `city`

    HAVING COUNT(`examSubjectID`)> 1)

    and id not in(

    SELECT min(id)

    FROM `ks_examdistrict`

    GROUP BY `examSubjectID`, `district`, `city`

    HAVING COUNT(`examSubjectID`)> 1

    第四步: 查询以上查询到的数据的所有id 并以查询到的id作为条件 进行删除

    delete from `ks_examcity` where id IN( select id from (

    select id

    from ks_examcity

    where `examSubjectID` in(

    select `examSubjectID`

    from ks_examcity

    group by examSubjectID, city, province

    having count(examSubjectID)> 1 )

    and id not in(

    select min(id)

    from ks_examcity

    group by examSubjectID, city, province

    having count(examSubjectID)> 1)) as tmpresult)

    ======================================================

    DELETE

    FROM `ks_examdistrict`

    where id IN(

    SELECT id

    from(

    select id

    from `ks_examdistrict`

    where `examSubjectID` in(

    SELECT `examSubjectID`

    from `ks_examdistrict`

    group by `examSubjectID`, `district`, `city`

    HAVING COUNT(`examSubjectID`)> 1)

    and id not in(

    SELECT min(id)

    FROM `ks_examdistrict`

    GROUP BY `examSubjectID`, `district`, `city`

    HAVING COUNT(`examSubjectID`)> 1)) as tmpresult)

    原文:https://blog.51cto.com/13922718/2433185

    展开全文
  • mysql去重多个字段

    千次阅读 2021-01-20 14:56:25
    mysql去重多个字段源表:select distinct id , name, phone from chongfubiao_quchong;select distinct * from chongfubiao_quchong;不合适的命令:distinct(*)命令 #语法错误[Err] 1064 - You have an error in ...

    mysql去重多个字段

    源表:

    select distinct id , name, phone from chongfubiao_quchong;

    select distinct * from chongfubiao_quchong;

    不合适的命令:

    distinct(*)命令 #语法错误

    [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) from chongfubiao_quchong' at line 1

    distinct(id)查出来的是一列

    select distinct (id,name,phone) from chongfubiao_quchong;

    [Err] 1241 - Operand should contain 1 column(s)

    解决过程:

    查询多个字段去重

    参考命令:select distinct ID,AA,BB from tName

    有个疑问:

    之前查询无论

    distinct (单个字段)还是

    distinct 多个字段 好像查询到的数据都是根据多个字段去重的。不知道怎么查询显示了?

    将查到的去重数据抽到新表

    INSERT into chongfubiao_quchong_copy (id, nam, phone)

    select distinct *  from chongfubiao_quchong ;

    写的错误语句

    INSERT into chongfubiao_quchong_copy (id, nam, phone) values

    select distinct *  from chongfubiao_quchong ;

    多了values因为查到的是有id,name,phone还有数据

    如果直接插要加values的

    INSERT into chongfubiao_quchong_copy (id, nam, phone) values

    (5, '3', '4')

    总结:

    去重语句

    #每个字段查询

    select distinct 列1名 , 列2名.. from 表名;

    #所有查询

    select distinct * from 表名;

    插入语句

    #插入一条数据

    INSERT into 插入表 (列1名 , 列2名..) value

    (数据1,数据2,..) ;

    #插入多条数据

    INSERT into 插入表 (列1名 , 列2名..) values

    (数据1,数据2,..) ,(数据1,数据2,..);

    #插入 查询到的数据

    INSERT into 插入表 (列1名 , 列2名..) # 括号中东西不能用*替换

    select distinct * from 查询表 ;

    在Navicat中复制一个表,并粘贴一个。很快1m 600w数据(3列)(写语句也一样)

    下面的是去重了之后插入的先查询在插入

    [SQL]INSERT into g....(id,xm,sfzh,jymc,jyjg,jgmc,jysj) SELECT distinct * from g....;

    时间: 13.450s

    受影响的行: 6796168

    679w数据(函id、姓名、身份证号)的查询和插入另一个表 用时13s。。。。

    SELECT distinct * from g....;

    查询字段出现大于1次的数据

    select 字段 from 表 group by 字段 having count(字段 ) >1;

    更新时间 不要后面有小数的 。 不加0后面有小数

    UPDATE 更新表 SET sj = current_timestamp(0);

    展开全文
  • mysql去重

    2021-01-28 01:20:44
    浏览器显示端去重: mysql去重, 把url重复且区为空的中去掉、统计重复数据、、结果集去重合并成一行 delete from 表名 where id not in (select d.id from (SELECT id FROM 表名 GROUP BY c1,c2,c3,c4)as d) #去重复...
  • 问题点:存在数据表test_table如下,想只对value字段筛选并去重,结果显示去重后的value列和对应的id列(id显示3或4都可以)idvalue1a2b3c4c5e5f可以看到表中的value字段有重复,如果想筛选去重,使用select distinct...
  • mysql去重后获得最新数据方法

    千次阅读 2021-02-04 18:58:07
    昨天做项目时候突然遇到一个问题,...我的需求是要从zan中获得去重后的每篇文章最新的点赞数据。当我动手的时候用了group by gid将gid分组。分组后的gid中取得时间最近的数据。这时sql的写法应该是,select gid,m...
  • 运行结果: 去重取最小值: 如果是去重取最小值,那么代码如下,简单地说就是oracle【改升序为降序】,mysql【改最大值为最小值】。 #oracle select row_number()over(partition by 回款金额 order by 回款金额 ASC...
  • 前几天在做一个需求的时候,需要清理mysql中重复的记录,当时的想法是通过代码遍历写出来,然后觉得太复杂,心里想着应该可以通过一个sql语句来解决问题的。查了资料,请教了大佬之后得出了一个很便利的sql语句,...
  • 1、DISTINCT介绍:在表中,一个列可能会包含多个重复值,有时我们也许希望仅仅列出不同的值,此时可以使用DISTINCT关键词。...2、DISTINCT使用注意事项:distinct 语句中 select 显示的字段只能是 distin...
  • 需求 显示每个用户最新的一条数据 点击再展示这个用户所有数据 CREATE TABLE `audit_user_log` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '流水ID', `uid` int(11) NOT NULL DEFAULT '0' COMMENT...
  • 今天遇到一个棘手的数据查找并去重的问题:情况:1.取出数据库中的数据;2.同一字段A,不同情况下取出的其他数据可能相同;3.将2情况下的重复数据删除,且留下指定A值的一条数据;4.将A存在的记录排序到最前,之后...
  • 资料下载请前往:链接 补充内容: 1、数据库基本结构: 2、在sqlyog中将myemployees库导入数据库的方法: ... 执行结束发现并没变化原因是sqlyog10.0版本需手动刷新,点击该...3、mysql中常用命令 #1查看当前...
  • DELETE FROM `gov_departmental_documents` WHERE title IN ( SELECT a.title FROM (SELECT title FROM gov_departmental_documents GROUP BY title HAVING COUNT(title) > 1) AS a) AND id NOT IN (SELECT b.aa ...
  • Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 2、过滤重复记录(只显示一条) Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title) 注:...
  • MySQL去重:DISTINCT语句

    2020-08-21 22:32:28
    1、DISTINCT介绍: 在表中,一个列可能会包含多个重复值,有时我们也许希望仅仅列出不同...distinct 语句中 select 显示的字段只能是 distinct 指定的字段,其他字段是不可能出现的。如下所示: select distinct na
  • 去重使用DISTINCT,DISTINCT告诉MySQL只返回不同(唯一)的列的行。如果使用DISTINCT关键字,它必须放在列的前面。不能部分使用DISTINCT,DISTINCT关键字应用于所有列而不仅是前置它的列,如果给出两个列,除非指定的...
  • mysql技巧之数据去重并记录总数

    千次阅读 2021-02-05 07:19:35
    1、使用distinct去重(适合查询整张表的总数)有多个学校+教师投稿,需要统计出作者的总数select count(author) as total from files每个作者都投稿很多,这里有重复的记录。select distinct author from files;有...
  • 第一条是先对age进行排序后,再对classid进行排序 第二条是先对classid进行排序,然后再对age进行排序 去重 使用DISTINCT关键字进行去重 select distinct age from students; 别名 查询时给字段添加别名,显示的...
  • DISTINCT 去重 SELECT DISTINCT label_code FROM label_info SELECT DISTINCT label_code FROM label_info WHERE label_img_code = 2; 原: 去重: GROUP_CONCAT 结果集 拼接 GROUP_CONCAT(label_code,code,xxx)...
  • 参考文章:mysql——去重并获取最新记录 如下所示: 问:3条数据都是同一个内容,但是要求只是显示最新的一条数据该如何操作呢? 答: SELECT * FROM t_cb_rkdk_lsly a WHERE a.create_time IN ( SELECT m....
  • mysql 去重 计数

    千次阅读 2014-03-28 18:10:37
    要求: 有两个表ttest1、ttest2,结构如下, 求 localname ,用户数 ttest1:地区码、用户id ...缺陷:对于地区d,没有显示用户为0 大家有什么好的方法,欢迎回复
  • MySQL数据库安装: 下载地址:https://dev.mysql.com/downloads/windows/installer/5.7.0.html MySQL连接数据库: db = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="root",database="csdn_...
  • 1、sql SELECT b.*SELECT b.* FROM customer_phone b WHERE b.id = (SELECT MAX(a.id) FROM customer_phone a WHERE a.customerId = b.customerId); FROM customer_phone b WHERE b.create...
  • ​提到复杂查询,MYSQL 头疼的旅程就开始了,当然优化的方法和其他的数据监控也不大同,MYSQL的语句优化属于发散性思维,只要你能用上的方法都可以,可不限制于数据库本身的语句优化。所以MYSQL的优化好像是一个讲不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,711
精华内容 9,484
关键字:

mysql去重显示

mysql 订阅
友情链接: Candy_Button.rar