gpt4 book ai didi

MySQL重复行 - 指定列

转载 作者:行者123 更新时间:2023-11-29 01:32:30 25 4
gpt4 key购买 nike

如何运行查询以查找行之间的重复项?它需要匹配的不是一个字段,而是多个。

这是表的解释。

+-------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| token | varchar(64) | NO | MUL | NULL | |
| maxvar | float | NO | | NULL | |
| maxvbr | float | NO | | NULL | |
| minvcr | float | NO | | NULL | |
| minvdr | float | NO | | NULL | |
| atype | int(11) | NO | | NULL | |
| avalue | varchar(255) | NO | | NULL | |
| createddate | timestamp | NO | | CURRENT_TIMESTAMP | |
| timesrun | int(11) | NO | | NULL | |
+-------------+--------------+------+-----+-------------------+----------------+

我需要匹配所有匹配的行:token、maxvar、maxvbr、minvcr、minvdr、type 和 avalue。如果所有这些字段都与另一行中的字段匹配,则将其视为“重复项”。

最终我想将其作为删除命令运行,但我可以轻松更改选择。

更新 仍在寻找在 MySQL 中使用单个查询删除的解决方案

最佳答案

只需将表连接到自身并比较行。您可以通过要求要删除的 ID 大于重复项的 ID 来确保保留具有最低 ID 的重复项:

DELETE FROM my_table WHERE id IN (
SELECT DISTINCT t1.id
FROM my_table t1
JOIN my_table t2
WHERE t1.id > t2.id
AND t1.token = t2.token AND t1.maxvar = t2.maxvar
AND t1.maxvbr = t2.maxvbr AND t1.minvcr = t2.minvcr
AND t1.minvdr = t2.minvdr AND t1.type = t2.type)

关于MySQL重复行 - 指定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595362/

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