Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Anda Boleh Memasukkan Baris dan Mendapatkan Data dalam Satu Pertanyaan MySQL?

Bagaimanakah Anda Boleh Memasukkan Baris dan Mendapatkan Data dalam Satu Pertanyaan MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 04:51:29633semak imbas

How Can You Insert Rows and Retrieve Data in a Single MySQL Query?

Memasukkan Baris dan Mendapatkan Data Baharu dalam MySQL

Banyak tugas memerlukan penambahan rekod baharu pada pangkalan data dan seterusnya mengaksesnya. Secara tradisinya, ini melibatkan operasi memasukkan dan mendapatkan semula yang berasingan. Tetapi tahukah anda adalah mungkin untuk menyelesaikan kedua-dua tugas dalam satu pertanyaan?

Memasukkan dan Memilih Nilai Secara Atom

Kuncinya terletak pada penggunaan fungsi LAST_INSERT_ID(). Selepas melaksanakan pernyataan sisipan, fungsi ini mengembalikan ID yang dijana untuk baris yang baru dimasukkan.

Contoh:

Mari kita pertimbangkan contoh yang diberikan dalam soalan:

<code class="sql">INSERT INTO `items` (`item`, `number`, `state`) 
(SELECT '3', `number`, `state` FROM `item_bug` WHERE `id`='3')</code>

Untuk mendapatkan ID baris yang disisipkan dan mendapatkan semula nilainya yang lain, anda boleh melaksanakan pertanyaan berikut:

<code class="sql">SELECT * FROM `items` WHERE `id`= LAST_INSERT_ID()</code>

Pertanyaan ini akan mengambil keseluruhan baris daripada jadual item yang sepadan dengan baris terakhir yang dimasukkan.

Faedah:

  • Pertanyaan tunggal untuk kedua-dua tugas: Meningkatkan prestasi dan mengurangkan kerumitan kod.
  • Kendalian atom: Dua langkah berlaku dalam satu transaksi, memastikan integriti data.
  • Memudahkan pengambilan data: Pembangun tidak perlu risau tentang menghafal atau mengurus ID baris di luar konteks pertanyaan.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Memasukkan Baris dan Mendapatkan Data dalam Satu Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn