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

同じテーブル内からのMYSQLアップデート

    UPDATE TABLE_A t
             JOIN
               ( SELECT type
                      , MIN(value) AS value
                 FROM TABLE_A
                 GROUP BY type
                 HAVING COUNT(DISTINCT value) = 1
               ) AS tu
             ON tu.type = t.type
    SET t.value = tu.value
    WHERE t.value IS NULL
    

    Peufeuが指摘したように、DISTINCT このようなケースをキャッチするには、id=3行も更新する必要があると思います。

    TABLE-A
    id | type | value
     1 |  10  | 123456
     2 |  10  | 123456
     3 |  10  | NULL
     4 |  20  | 123456
     5 |  20  | 654321
     6 |  20  | NULL
    



    1. MariaDB JSON_SET()の説明

    2. MySQLおよびMariaDB移行用のトップオープンソースツール

    3. 複数のテーブルからのSQLINSERTINTO

    4. 重複エントリのエラーを処理するにはどうすればよいですか?