mysql putty 命令删除重复项

Posted

技术标签:

【中文标题】mysql putty 命令删除重复项【英文标题】:mysql putty command delete duplicates 【发布时间】:2012-10-14 03:39:37 【问题描述】:

我喜欢从 mysql 数据库中删除重复的链接

phpmyadmin 这个命令对于 smal 数据库是可以的,但是在我的表中有 5gb 数据的时候出现错误

DELETE t2 FROM Link t1 JOIN Link t2 ON (t2.page = t1.page AND t2.linkID > t1.linkID);

我喜欢从 putty ssh 中删除重复的链接,但出现错误:

[root@server]# mysql -p

输入密码: 欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。 您的 MySQL 连接 ID 是 11433 服务器版本:5.5.28 MySQL Community Server (GPL) by Remi

版权所有 (c) 2000、2012,Oracle 和/或其附属公司。保留所有权利。

Oracle 是 Oracle Corporation 和/或其 附属公司。其他名称可能是其各自的商标 所有者。

键入“帮助;”或 '\h' 寻求帮助。输入 '\c' 清除当前输入语句。

mysql> select database
    -> DELETE t2 FROM   Link t1 JOIN   Link t2 ON (t2.page = t1.page AND t2.linkID > t1.linkID);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE t2 FROM   Link t1 JOIN   Link t2 ON (t2.page = t1.page AND t2.linkID > t1' at line 2
mysql>

怎么做?

【问题讨论】:

错误来自查询的第一行。 “选择数据库”应该是“使用数据库名称;” (将 'databasename' 更改为实际名称),并且在每个单独的查询的末尾,您需要放置一个分号。虽然您的 DELETE 查询也有语法错误。 我选择了一个好的数据库名称,这是一个示例,可能需要一些符号,输入的格式如何?用腻子? 命令是“USE database”而不是“SELECT database” 【参考方案1】:

最好使用像这样更简单的查询来删除

DELETE FROM T2 WHERE LINK IN 
(SELECT T2.LINK FROM T1 JOIN T2 ON (T2.PAGE=T1.PAGE AND T2.LINKID > T1.LINKID))

【讨论】:

以上是关于mysql putty 命令删除重复项的主要内容,如果未能解决你的问题,请参考以下文章

MySQL,删除重复项

如何删除 MySQL 表中的重复项

使用单个重复列从 MySQL 数据库中删除重复项 [重复]

mysql 删除重复项

sql Mysql删除重复项

删除 mysql 表上的重复项 [该表 > 2Gb]