多くのタスクでは、データベースに新しいレコードを追加し、その後それらのレコードにアクセスする必要があります。従来、これには個別の挿入操作と取得操作が必要でした。しかし、両方のタスクを 1 つのクエリで実行できることをご存知ですか?
値のアトミックな挿入と選択
重要なのは、LAST_INSERT_ID() 関数の使用にあります。 insert ステートメントを実行した後、この関数は新しく挿入された行に対して生成された ID を返します。
例:
質問に示されている例を考えてみましょう:
<code class="sql">INSERT INTO `items` (`item`, `number`, `state`) (SELECT '3', `number`, `state` FROM `item_bug` WHERE `id`='3')</code>
挿入された行の ID を取得し、その他の値を取得するには、次のクエリを実行できます。
<code class="sql">SELECT * FROM `items` WHERE `id`= LAST_INSERT_ID()</code>
このクエリは、対応する items テーブルから行全体をフェッチします。最後に挿入された行。
利点:
以上が単一の MySQL クエリで行を挿入し、データを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。