gpt4 book ai didi

mysql - 删除mysql表中的重复对

转载 作者:行者123 更新时间:2023-11-29 01:20:34 24 4
gpt4 key购买 nike

+------+---------+---------+
| id | user_id | job_id |
+------+---------+---------+
| 92 | 58 | 4 |
| 896 | 58 | 4 |
| 988 | 58 | 22 |
| 991 | 58 | 22 |
| 894 | 58 | 38 |
| 548 | 58 | 38 |

我想删除 user_id 与 job_id 重复的条目。换句话说,应该只有一个不同的 job_id 与 user_id 关联。在此示例中,应该只有 4、22、38(而不是重复的条目)。哪个 id 受到影响并不重要,只要一个 job_id 与 user_id 匹配即可。

最佳答案

你可以使用:

DELETE t1 FROM tab t1, tab t2
WHERE t1.id < t2.id
AND t1.user_id = t2.user_id
AND t1.job_id = t2.job_id;

SqlFiddleDemo

输出:

╔══════╦══════════╦════════╗
║ id ║ user_id ║ job_id ║
╠══════╬══════════╬════════╣
║ 896 ║ 58 ║ 4 ║
║ 991 ║ 58 ║ 22 ║
║ 894 ║ 58 ║ 38 ║
╚══════╩══════════╩════════╝

并考虑在 user_idjob_id 列上添加 UNIQUE INDEX 以避免将来出现此问题。

关于mysql - 删除mysql表中的重复对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584086/

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