-- 假设有一个名为 'users' 的表,其中包含重复的记录,我们希望根据 'email' 字段去重
-- 方法1:使用 DELETE 和 GROUP BY 去重
DELETE FROM users
WHERE id NOT IN (
SELECT *
FROM (
SELECT MIN(id)
FROM users
GROUP BY email
) AS temp
);
-- 解释:这个查询会删除所有不在子查询结果中的记录。子查询通过 GROUP BY email 找到每个 email 的最小 id,并保留这些记录。
-- 方法2:使用临时表去重
CREATE TEMPORARY TABLE temp_users AS
SELECT DISTINCT *
FROM users;
TRUNCATE TABLE users;
INSERT INTO users
SELECT * FROM temp_users;
DROP TEMPORARY TABLE temp_users;
-- 解释:首先创建一个临时表来存储不重复的记录,然后清空原表并将临时表中的数据插入回原表。
如果你需要更具体的场景或有其他要求,请告诉我!
上一篇:mysql wm_concat
下一篇:ubuntu安装mysql数据库
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站