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中进行数据的加密和解密存储方法,感兴趣的朋友一起看看吧
    2024-05-05
  • MySQL全面安全加固实战的全流程

    MySQL全面安全加固实战的全流程

    在生产中,安全是相当重要,毕竟你的核心数据都在里面,下面这篇文章主要介绍了MySQL全面安全加固的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-03-03
  • 详解Mysql基础语法的使用

    详解Mysql基础语法的使用

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。这篇文章主要介绍了Mysql基础语法的使用,需要的朋友可以参考下
    2018-07-07
  • MySQL数据库使用规范总结

    MySQL数据库使用规范总结

    本篇文章给大家详细分类总结了数据库相关规范,帮助大家发挥出数据库的性能,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL数据库使用mysqldump导出数据详解

    MySQL数据库使用mysqldump导出数据详解

    mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。接下来通过本文给大家介绍MySQL数据库使用mysqldump导出数据详解,需要的朋友一起学习吧
    2016-04-04
  • MySQL窗口函数OVER使用示例详细讲解

    MySQL窗口函数OVER使用示例详细讲解

    这篇文章主要介绍了MySQL窗口函数OVER()用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Mysql修改server uuid的方法分享

    Mysql修改server uuid的方法分享

    这篇文章主要给大家介绍了关于Mysql修改server uuid的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • MySQL自增ID用完的几种解决方案

    MySQL自增ID用完的几种解决方案

    MySQL的自增ID(AUTO_INCREMENT)用完之后,会出现重复ID的问题,那么如何解决这个问题呢,接下本文就给大家介绍MySQL自增ID用完的几种解决方案,需要的朋友可以参考下
    2023-07-07
  • ubuntu16.04.1下 mysql安装和卸载图文教程

    ubuntu16.04.1下 mysql安装和卸载图文教程

    这篇文章主要介绍了ubuntu16.04.1下 mysql安装和卸载图文教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • 使用Perl DBI操作MySQL的一些建议

    使用Perl DBI操作MySQL的一些建议

    这篇文章主要介绍了使用Perl DBI操作MySQL的一些建议,针对Perl下连接MySQL的DBD::MySQL这个模块,需要的朋友可以参考下
    2015-05-05

最新评论