ホームページ > データベース > mysql チュートリアル > MySQL の UPDATE 操作と SELECT 操作を 1 つのリクエストに組み合わせて、行を「所有」し、そのパラメーターを取得できますか?

MySQL の UPDATE 操作と SELECT 操作を 1 つのリクエストに組み合わせて、行を「所有」し、そのパラメーターを取得できますか?

Susan Sarandon
リリース: 2024-11-03 05:10:31
オリジナル
945 人が閲覧しました

Can you combine MySQL UPDATE and SELECT operations into one request to

MySQL の UPDATE と SELECT を 1 つのリクエストで実行します

多くのワーカー アプリケーションは、 MySQL のネイティブ C API。タスクを所有するには、アプリケーション:

  1. グローバルに一意の ID を生成します。
  2. UPDATE クエリを実行して、guid が 0 の行に対して生成された ID を guid フィールドに設定します。 .
  3. SELECT クエリを実行して、GUID に基づいてタスクのパラメータを取得します。

これらの手順をサーバーへの 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート