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连接查询实例详解

    MySQL连接查询实例详解

    这篇文章主要介绍了MySQL连接查询,结合实例形式总结分析了mysql表的创建、内连接、左连接、右连接、复合条件连接查询等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • MySQL线上死锁分析实战

    MySQL线上死锁分析实战

    这篇文章主要介绍了MySQL线上死锁分析实战,文章内容分析的很清楚,有对于这方面不懂的同学可以研究下
    2021-02-02
  • 部署MySQL延迟从库的好处小结

    部署MySQL延迟从库的好处小结

    这篇文章主要给大家介绍了部署MySQL延迟从库的一些好处,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • mysql语句实现简单的增、删、改、查操作示例

    mysql语句实现简单的增、删、改、查操作示例

    这篇文章主要介绍了mysql语句实现简单的增、删、改、查操作,结合实例形式分析总结了mysql语句实现数据库与表的创建、删除以及增删改查等常见操作技巧,需要的朋友可以参考下
    2019-05-05
  • mysql 8.0.15 下载安装详细教程 新手必备!

    mysql 8.0.15 下载安装详细教程 新手必备!

    这篇文章主要为大家详细介绍了mysql 8.0.15 下载安装详细教程,纯新手教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • CentOS下安装mysql时忘记设置root密码致无法登录的解决方法

    CentOS下安装mysql时忘记设置root密码致无法登录的解决方法

    最近在给公司的内网开发用服务器装系统,然后装mysql居然就花了一天,原因是因为本人在CentOS下安装万mysql后,无法通过root进入,因为安装的时候,并没有设置root密码而导致无法登录,通过查找了资料终于解决了,现在想方法分享给大家,有需要的朋友们可以参考借鉴。
    2016-11-11
  • python 连接数据库mysql解压版安装配置及遇到问题

    python 连接数据库mysql解压版安装配置及遇到问题

    今天学习python连接数据库,就想安装一下mysql数据库,没想到小小的数据库也遇到了不少挫折,所以我就把自己的安装过程以及问题写出来分享给大家,需要的朋友可以参考下
    2019-06-06
  • ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2
    2014-02-02
  • Mac环境mysql5.7.21 utf8编码问题及解决方案

    Mac环境mysql5.7.21 utf8编码问题及解决方案

    本篇教程给大家简单介绍下Mac环境mysql5.7.21 utf8编码问题及解决方案,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-03-03
  • mysql中取字符串中的数字的语句

    mysql中取字符串中的数字的语句

    在很多时间我们需要把字符串的数字给取出来,通常大家会用php,asp等这类来操作,本文章介绍了在sql中取字符中的数字办法,有需要的朋友可以参考一下
    2012-04-04

最新评论