-- 删除表中重复的数据,只保留一条记录
-- 假设我们有一个名为 '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;
CREATE TEMPORARY TABLE
创建一个临时表 temp_users
,并从中选择唯一的记录。TRUNCATE TABLE
清空原始表 users
。或者,你可以直接在原表上进行操作,使用 DELETE
语句结合自连接的方式,删除重复记录,只保留每组中 id
最小的那一行。
上一篇:mysql isnull函数
下一篇:mysql重置自增id
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站