mysql如何判断同一字段是否有重复数据

 更新时间:2024年05月07日 11:22:12   作者:Put柳树  
这篇文章主要介绍了mysql如何判断同一字段是否有重复数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mysql判断同一字段是否有重复数据

有时候我们呢会遇到业务问题:判断数据库字段是否含有重复数据?

解决方式

其实很简单,直接写sql语句:

select 字段名 from 表名 

group by 字段名

having count(*)>1

原因刨析

我们运用group by来进行分组,然后再把分组里大于1条的数据挑出来自然就是重复的数据。

实例展示

1.创建一张表

2.里面有‘张三’这个重复数据,把它挑出来

select name from testname
GROUP BY name
having count(*)>1

3.结果是只有'张三'这个结果,得到了重复的数据。

mysql对某个字段重复数据的查询,删除,与合并

1.对于部门表部门编号重复的数据

进行相关操作

-- 先查看部门信息原表的数据
select * from t_dept;

-- 查询出所有d_no有重复的数据(没有重复的不显示,即104在表中只有一条,所以不显示)
select * from t_dept td where td.d_no in (select t1.d_no from t_dept t1 group by t1.d_no having count(1) > 1);

-- 查询出所有d_no有重复的数据(只显示多余的那几条,比如101和103表中一共有三条,只显示多余的两条,同样102有两条,那么只显示多余的那一条)
​​​​​​​select * from t_dept td where td.d_id not in (select min(t1.d_id) min_id from t_dept t1 group by t1.d_no);

-- 删除表中d_no重复的数据,只留一条
​​​​​​​delete from t_dept td where td.d_id not in (select tab.min_id from (select min(t1.d_id) min_id from t_dept t1 group by t1.d_no) tab);

2.对于故障信息表将相同设备的问题信息合并成一条

-- 先查看故障信息原表的数据
select * from t_fault;

-- 将故障等级和故障信息拼接在一起(CONCAT_WS()函数)
​​​​​​​select tf.f_id,tf.f_no,tf.f_name,CONCAT_WS('-',tf.f_level,tf.f_desc) as f_msg from t_fault tf 

-- 将故障信息和故障等级拼接在一起(这里使用CONCAT_WS()函数),并将编号名称相同的产品合并成一条(这里使用GROUP_CONCAT()函数)
select tab.f_no,tab.f_name,GROUP_CONCAT(tab.f_msg SEPARATOR ';') goup_msg from 
(select tf.f_id,tf.f_no,tf.f_name,CONCAT_WS('-',tf.f_level,tf.f_desc) as f_msg from t_fault tf ) tab 
group by tab.f_no,tab.f_name

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql explain的用法(使用explain优化查询语句)

    mysql explain的用法(使用explain优化查询语句)

    mysql explain可以帮助你检查索引和更好的优化查询语句,今天特地学习了下mysql explain的用法,需要的朋友可以参考下
    2017-01-01
  • 一文深入理解MySQL中的UTF-8与UTF-8MB4字符集

    一文深入理解MySQL中的UTF-8与UTF-8MB4字符集

    在全球化的今天,数据的存储与处理需要支持多种语言与字符集,对于 Web 应用程序和数据库系统来说,字符集的选择尤为重要,特别是在处理包含多种语言字符(如中文、阿拉伯文、表情符号等)的系统中,本文将深入探讨 MySQL 中的两个常见字符集:UTF-8 和 UTF-8MB4
    2024-11-11
  • MySQL分类排名和分组TOP N实例详解

    MySQL分类排名和分组TOP N实例详解

    大家好,本篇文章主要讲的是MySQL分类排名和分组TOP N实例详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • mysql datetime查询异常问题解决

    mysql datetime查询异常问题解决

    这篇文章主要介绍了mysql datetime查询异常问题解决的相关资料,这里对异常进行了详细的介绍和该如何解决,需要的朋友可以参考下
    2016-11-11
  • window10中mysql8.0修改端口port不生效的解决方法

    window10中mysql8.0修改端口port不生效的解决方法

    mysql配置文件默认位置,端口号等信息需要在my.ini文件中修改,若修改安装位置的my-default文件文件或新建my.ini文件是不生效的,本文主要介绍了window10中mysql8.0修改端口port不生效的解决方法,感兴趣的可以了解一下
    2023-11-11
  • Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法

    Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法

    下面小编就为大家带来一篇Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Linux下mysql异地自动备份的方法

    Linux下mysql异地自动备份的方法

    这篇文章主要介绍了Linux下mysql异地自动备份的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 一次Mysql使用IN大数据量的优化记录

    一次Mysql使用IN大数据量的优化记录

    这篇文章主要给大家介绍了关于Mysql使用IN大数据量的优化的实战记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • MySQL快速复制数据库数据表的方法

    MySQL快速复制数据库数据表的方法

    有些时候,我们为了快速搭建一个测试环境,或者说是克隆一个网站,需要复制已经存在的mysql数据库。下面小编给大家介绍mysql快速复制数据库数据表的方法,小伙伴们跟着小编一起学习吧
    2015-10-10
  • MySQL如何支撑起亿级流量

    MySQL如何支撑起亿级流量

    当每天新增数据上亿级的时候,单表数据量在百万级别,数据库服务器的高峰期写入压力、查询压力在都很高的时候,该如何让MySQL顺利支撑起来呢?本片文章将教给你详细的方案
    2021-09-09

最新评论