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

特定の条件で重複を削除する方法

    これは機能するはずです:

    DELETE Y
    FROM YourTable Y JOIN 
       (
      SELECT
        name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6 
      FROM YourTable
      GROUP BY name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6
      HAVING COUNT(1) > 1
         ) T ON Y.name = T.name 
            AND Y.cl_1 = T.cl_1
            AND Y.cl_2 = T.cl_2
            AND Y.cl_3 = T.cl_3
            AND Y.cl_4 = T.cl_4
            AND Y.cl_5 = T.cl_5
            AND Y.cl_6 = T.cl_6
    

    SQLフィドルデモ

    ところで-3行目と6行目はどうですか?それらはまったく同じように見えますか?

    http://sqlfiddle.com/#!2/26b8b/1




    1. RubyonRailsのアクティブレコードを使用して複数のレコードを挿入する

    2. order by句が使用されていない場合、OracleSQLは任意の方法で行を返します

    3. テーブルPHPエコーでの発生をカウント

    4. テーブルベースのレコードデータ型を持つ強力な参照カーソル