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

mysql删除重复数据保留一条

作者:诸神之翼   发布日期:2025-07-21   浏览:21

-- 删除表中重复的数据,只保留一条记录

-- 假设我们有一个名为 'users' 的表,其中 'email' 列有重复数据,我们希望删除这些重复的记录,只保留每组重复记录中的一条。

-- 步骤 1: 创建临时表来保存唯一的数据
CREATE TEMPORARY TABLE temp_users AS
SELECT DISTINCT * FROM users;

-- 步骤 2: 清空原表
TRUNCATE TABLE users;

-- 步骤 3: 将唯一的数据从临时表插入回原表
INSERT INTO users SELECT * FROM temp_users;

-- 步骤 4: 删除临时表
DROP TEMPORARY TABLE temp_users;

-- 或者使用更高效的方法,直接在原表上操作:
DELETE t1 FROM users t1
INNER JOIN users t2
WHERE t1.id > t2.id AND t1.email = t2.email;

解释说明:

  1. 创建临时表:通过 CREATE TEMPORARY TABLE 创建一个临时表 temp_users,并从中选择唯一的记录。
  2. 清空原表:使用 TRUNCATE TABLE 清空原始表 users
  3. 插入唯一数据:将临时表中的唯一数据重新插入到原始表中。
  4. 删除临时表:最后删除临时表以清理环境。

或者,你可以直接在原表上进行操作,使用 DELETE 语句结合自连接的方式,删除重复记录,只保留每组中 id 最小的那一行。

上一篇:mysql isnull函数

下一篇:mysql重置自增id

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql.user

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

Laravel 中文站