-- 删除重复项只保留一条的SQL语句
-- 假设我们有一个名为 `my_table` 的表,其中包含以下字段:id, name, age
-- 我们希望根据 `name` 和 `age` 字段删除重复项,只保留每组中的第一条记录
DELETE t1 FROM my_table t1
INNER JOIN my_table t2
WHERE
t1.id > t2.id AND
t1.name = t2.name AND
t1.age = t2.age;
-- 解释:
-- 1. 使用自连接 (self-join) 将表与自身连接。
-- 2. 条件 `t1.id > t2.id` 确保我们只删除 id 较大的重复记录,保留 id 最小的那一行。
-- 3. `t1.name = t2.name AND t1.age = t2.age` 确保我们只删除在 `name` 和 `age` 字段上重复的记录。
上一篇:mysql if exists
下一篇:mysql 行锁
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站