-- 假设我们有一个名为 'users' 的表,其中包含重复的记录,我们希望删除重复的记录,只保留一条。
-- 表结构如下:
-- id INT PRIMARY KEY,
-- name VARCHAR(50),
-- email VARCHAR(100)
-- 步骤 1: 创建一个临时表来存储唯一的数据
CREATE TEMPORARY TABLE temp_users AS
SELECT *
FROM users
WHERE 1=0;
-- 步骤 2: 插入唯一的数据到临时表中
INSERT INTO temp_users (id, name, email)
SELECT MIN(id), name, email
FROM users
GROUP BY name, email;
-- 步骤 3: 删除原始表中的所有数据
DELETE FROM users;
-- 步骤 4: 将临时表中的唯一数据插入回原始表
INSERT INTO users (id, name, email)
SELECT * FROM temp_users;
-- 步骤 5: 删除临时表
DROP TEMPORARY TABLE temp_users;
temp_users
,用于存储去重后的数据。GROUP BY
和 MIN(id)
来确保每个 name
和 email
组合只保留最小的 id
记录。users
中的所有数据。这种方法可以确保在删除重复记录时,只保留每组记录中的一条。
上一篇:mysql 自增函数
下一篇:mysql 转换成字符串
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站