MySQL の UPDATE と SELECT を 1 つのリクエストで実行します
多くのワーカー アプリケーションは、 MySQL のネイティブ C API。タスクを所有するには、アプリケーション:
これらの手順をサーバーへの 1 回の呼び出しに効率的に組み合わせる方法はありますか?行を所有し、そのパラメータを 1 回の操作で取得しますか?
回答:
はい、サブクエリを含む UPDATE クエリを使用してこれを実現できます:
UPDATE tasks SET guid = ( SELECT id FROM tasks ORDER BY id DESC LIMIT 1 ) WHERE guid = 0 RETURNING guid, params;
このクエリは、タスク テーブルの最大の ID を新しい GUID として使用して、行の GUID フィールドを GUID 0 で更新します。また、更新された GUID とタスクのパラメーターの両方を 1 行で返します。
以上がMySQL の UPDATE 操作と SELECT 操作を 1 つのリクエストに組み合わせて、行を「所有」し、そのパラメーターを取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。