gpt4 book ai didi

mysql - 通过在 sql 中使用两列从表中删除重复项?

转载 作者:行者123 更新时间:2023-11-29 00:06:19 25 4
gpt4 key购买 nike

我有这样的 table

Id Name Lang   templateid
1 xxx ENGISH 1
2 xxx SPANISH 2
3 xxx ENGISH 1
4 xxx ENGISH 1
5 xxx ENGISH 1
6 xxx SPANISH 1

我想删除具有相同 lang 和 templateid 的重复记录。例如 templateid 1 + Lang ENGLISH 重复了不止一次。

删除重复的记录并保留最新的记录,即 Id 5 是英文的最新记录。

如有任何建议,我们将不胜感激。

最佳答案

MySQL

查询

DELETE t2
FROM tbl t1
JOIN tbl t2 ON
(
t2.lang = t1.lang
AND t2.templateId=t1.templateId
AND t2.id < t1.id
);

Fiddle Demo



PostgreSQL

查询

DELETE FROM tbl t1
WHERE id IN
(
SELECT t1.id
FROM tbl t1
JOIN tbl t2 ON
(
t2.lang = t1.lang
AND t2.templateId=t1.templateId
AND t2.id > t1.id
)
);

Fiddle Demo

关于mysql - 通过在 sql 中使用两列从表中删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com