Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql 查询重复

作者:烟寂断魂   发布日期:2025-07-16   浏览:41

-- 查询表中某一列的重复数据示例代码

-- 假设有一个名为 'users' 的表,其中有一列 'email',我们想找出所有重复的 email 地址。

-- 1. 查找所有重复的 email 及其出现次数
SELECT email, COUNT(*) AS count
FROM users
GROUP BY email
HAVING count > 1;

-- 2. 查找所有包含重复 email 的记录
SELECT *
FROM users
WHERE email IN (
    SELECT email
    FROM users
    GROUP BY email
    HAVING COUNT(*) > 1
);

-- 3. 删除重复记录,只保留一条(假设以 id 最小的那条为准)
DELETE FROM users
WHERE id NOT IN (
    SELECT * 
    FROM (
        SELECT MIN(id)
        FROM users
        GROUP BY email
    ) AS tmp
);

解释说明:

  1. 查找所有重复的 email 及其出现次数:使用 GROUP BYHAVING 子句来统计每个 email 出现的次数,并筛选出出现次数大于 1 的记录。
  2. 查找所有包含重复 email 的记录:通过子查询找到所有重复的 email,然后在主查询中使用 IN 关键字来获取这些 email 对应的所有记录。
  3. 删除重复记录,只保留一条:通过子查询找到每个 email 中最小的 id,然后删除那些 id 不在这个子查询结果中的记录。注意这里使用了嵌套的子查询,因为 MySQL 不允许直接在 DELETE 语句中引用同一个表。

上一篇:mysql字符替换

下一篇:mysql 字段包含

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql代码

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站