mysql中有数百行,其中大多数是相互重复的。所以这里我想用最小的行id更新duplicate rows列update。
+----+------+-----+--------+
| ID | Name | Age | Update |
+----+------+-----+--------+
| 1 | John | 16 | NULL |
| 2 | John | 16 | 1 |
| 3 | John | 16 | 1 |
| 4 | John | 16 | 1 |
+----+------+-----+--------+
在上面的示例中,最小行id是“1”。“update”列中具有相同“name”和“age”的重复行更新为“1”。
我知道删除重复的行,保持最小的行id。
DELETE FROM `students`
WHERE ID NOT IN (
SELECT * FROM (
SELECT MIN(ID) FROM students
GROUP BY name, age
)
x);
但是现在我想更新重复的行。
1条答案
按热度按时间ycl3bljg1#
您可以更新所有行以包含所有重复行的最小id,如果update列与id列相同,则使用第二次更新将其设置为null。
sql小提琴