0

mysql データベースから重複したリンクを削除したい

phpmyadminから、このコマンドは小さなデータベースでは問題ありませんが、テーブルに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

Enter password: MySQL モニターへようこそ。コマンドは ; で終わります。または \g. MySQL 接続 ID は 11433 です サーバー バージョン: 5.5.28 MySQL Community Server (GPL) by Remi

Copyright (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>

方法?

4

1 に答える 1

1

このような単純なクエリを使用して削除することをお勧めします

DELETE FROM T2 WHERE LINK IN 
(SELECT T2.LINK FROM T1 JOIN T2 ON (T2.PAGE=T1.PAGE AND T2.LINKID > T1.LINKID))
于 2012-10-24T05:34:05.013 に答える