sql >> データベース >  >> RDS >> Mysql

MySQLで重複を見つける方法

    重複があるすべてのレコードを返します:

    SELECT theTable.*
    FROM theTable
    INNER JOIN (
      SELECT link, size
      FROM theTable 
      GROUP BY link, size
      HAVING count(ID) > 1
    ) dups ON theTable.link = dups.link AND theTable.size = dups.size
    

    私はサブクエリb/cが好きです。最初または最後を除いて、すべてを選択するようなことができます。 (その後、削除クエリに変換するのは非常に簡単です。)

    例:最大IDを持つレコードを除くすべての重複レコードを選択します:

    SELECT theTable.*
    FROM theTable
    INNER JOIN (
      SELECT link, size, max(ID) as maxID
      FROM theTable 
      GROUP BY link, size
      HAVING count(ID) > 1
    ) dups ON theTable.link = dups.link 
              AND theTable.size = dups.size 
              AND theTable.ID <> dups.maxID
    


    1. エラー:HHH000299:スキーマの更新を完了できませんでしたjava.lang.NullPointerException

    2. ストアドプロシージャから選択する方法

    3. 日付の間にあるCakePHPモデル

    4. Oracle 12cでCLOBとして格納されているJSON配列の要素数を取得するにはどうすればよいですか?