-- 删除重复数据,只保留一条
-- 假设我们有一个名为 `users` 的表,其中 `email` 列有重复的数据,我们希望只保留每个 `email` 的第一条记录
DELETE FROM users
WHERE id NOT IN (
SELECT * FROM (
SELECT MIN(id)
FROM users
GROUP BY email
) AS temp
);
-- 解释:
-- 1. 内层查询 (SELECT MIN(id) FROM users GROUP BY email) 找出每个 `email` 的最小 `id`,即每组重复数据中最早的那条记录。
-- 2. 外层查询 (DELETE FROM users WHERE id NOT IN (...)) 删除所有不在内层查询结果中的记录,也就是删除所有重复的记录,只保留每组中最早的那一条。
下一篇:彻底删除mysql
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站