gpt4 book ai didi

mysql - 删除重复的行(已搜索并尝试过此处的内容)

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

我已经有一两天尝试删除系统中出现的几个重复的数据库行,这些行在我的终端出现轻微故障后,我已经尝试了大多数(如果不是全部)方法到目前为止在 Stackoverflow 上找到的。我以前曾在同一个 mariadb 和 mysql 上使用过其中的几种方法,现在我尝试删除它们。

这是我的表结构。

ID |日期 |经验|字符ID

ID 是唯一标识符(又名自动递增),每个字符 ID 每个日期应该只有一个条目,这就是重复的内容。有些字符每个日期有 5-7 个条目,相同的日期(我已经检查过)。

我尝试了以下查询来删除它们,这些查询在过去曾解决过我遇到的类似问题。

DELETE n1 FROM experiencehistory n1, experiencehistory n2 WHERE n1.id > n2.id AND n1.date = n2.date AND n1.characterid = n2.characterid

以及

DELETE experiencehistory FROM experiencehistory

左外连接 ( SELECT MIN(id) 作为 RowId、characterid、日期 FROM 经验历史 按字符、日期分组) 作为 KeepRows ON experiencehistory.id = KeepRows.RowId在哪里 KeepRows.RowId 为 NULL

两者都在控制台中没有产生任何结果,并且通过 PHPMyadmin 我收到此错误;

Static analysis:

1 errors were found during analysis.

Unexpected token. (near "experiencehistory" at position 7)

关于我可以采取什么措施来解决这个问题,或者我主要尝试过的这些方法是否出了问题,有什么建议吗?

服务器版本:10.1.13-MariaDB - mariadb.org 二进制发行版

感谢您的见解!

最佳答案

你可以尝试这种方式(删除所有id!= for min(id) group by characterid, date

DELETE FROM experiencehistory
where (id, characterid, date) not in
( select x_id, characterid , x_date from ( select min(x.id) as x_id
, x.characterid as x_characterid
, x.date as x_date
from experiencehistory as x group by x.characterid, x.date ) t );

关于mysql - 删除重复的行(已搜索并尝试过此处的内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38527789/

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