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

MySQL-SELECTしてからUPDATE

    UPDATEを実行するだけです SELECTを実行するとき 同時に。

    これを変更します:

    SELECT product_name, sku, qty 
    FROM supplier_dropship_items 
    WHERE supplier_id = '3' AND status = '2';
    

    これに:

    UPDATE supplier_dropship_items as t, 
    (
        SELECT id, product_name, sku, qty 
        FROM supplier_dropship_items 
        WHERE supplier_id = '3' AND status = '2'
    ) as temp
    SET status = '1' WHERE temp.ID = t.ID;
    

    これは、テーブル内にID列があることを前提としています。これは、ID列の設定方法であり、正規化されたテーブルはどのように見えるかを示しています。

    編集

    これがこの構文に関するドキュメントへのリンク です。

    基本的に、これが行っているのは、ここでエイリアスしているテーブルをtとして更新しようとしているときです。 、selectステートメントを同時に実行します。
    このselectステートメントは、tempという名前でエイリアスする結果テーブルを返します。 。
    では、selectステートメントの結果がtemp内にあると想像してください。 、更新しているテーブル全体がt内にある間 。
    最後に、statusを更新します 1へのフィールド ここで、ID の(これら2つのエイリアス結果セットで)一致



    1. クラスごとのmysql更新テーブルajax

    2. 実行計画のStarJoinInfo

    3. B+treeとHashを比較したデータベースのインデックス作成

    4. OpenshiftでDB接続を開く方法は?