-- 假设我们有一个名为 'users' 的表,其中包含重复的记录,我们想要删除这些重复记录并保留唯一的关键字。
-- 首先,我们可以使用以下查询来查找重复的记录:
SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
-- 然后,我们可以使用以下语句来删除重复的记录,只保留每组中最早的记录:
DELETE u1 FROM users u1
INNER JOIN users u2
WHERE u1.email = u2.email AND u1.id > u2.id;
-- 或者,我们可以通过创建一个临时表来实现去重:
CREATE TABLE temp_users AS
SELECT DISTINCT * FROM users;
-- 然后删除原始表:
DROP TABLE users;
-- 最后将临时表重命名为原始表名:
RENAME TABLE temp_users TO users;
GROUP BY 和 HAVING 子句可以找到哪些关键字(如 email)有重复记录。DELETE 语句结合 JOIN 来删除多余的记录,只保留每个重复组中的最早记录(假设 id 是主键且递增)。上一篇:docker 运行mysql
下一篇:mysql sql
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站