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

MySql:リストを使用して変数を設定します

    MySQLの変数には、単一の単純な値、通常は文字列、数値、またはブール値が必要です。この場合、できることは、 GROUP_CONCAT()を介して販売IDをルーティングすることです。 、これはすべての販売IDのコンマ区切りリストを返します(いくつかの制限があります-販売IDがたくさんあり、それらをまったくフィルタリングできない場合は、いくつかの構成設定を調整する必要がある場合があります)、次に<コードを実行します> FIND_IN_SET() 、コンマ区切りのリストの値をチェックします。このようなものは小さなセットで機能します:

    SET @list = (SELECT GROUP_CONCAT(ID) FROM Sales);
    UPDATE items SET aValue = X WHERE FIND_IN_SET(salesID, @list) > 0;
    DELETE FROM SalesMessages WHERE FIND_IN_SET(salesId, @list) > 0;
    

    また、結合を介して変数の作成を完全にバイパスすることもできます。これにより、より高速になり、 GROUP_CONCAT()の長さの制限を回避できます。 :

    UPDATE items as i INNER JOIN Sales as s ON s.ID = i.salesID SET i.aValue = X;
    DELETE sm FROM SalesMessages as sm INNER JOIN Sales as s ON s.ID = sm.salesID;
    



    1. PHP+MySQLキュー

    2. ListViewアイテムへの画像の割り当てチュートリアル-03

    3. SQL-COALESCEとISNULLの違いは?

    4. コマンドラインからLinux上のMySQLデータベースを選択する