Rumah  >  Artikel  >  pangkalan data  >  **Bagaimana untuk Mendapatkan Data daripada Baris Terjejas Selepas Pertanyaan KEMASKINI dalam MySQL?**

**Bagaimana untuk Mendapatkan Data daripada Baris Terjejas Selepas Pertanyaan KEMASKINI dalam MySQL?**

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 08:52:02337semak imbas

**How to Retrieve Data from Affected Rows After an UPDATE Query in MySQL?**

Menggabungkan Pertanyaan SELECT dan UPDATE untuk Pendapatan Data Baris Terjejas dalam MySQL

MySQL menyediakan keupayaan pertanyaan yang berkuasa, termasuk keupayaan untuk melaksanakan operasi yang kompleks. Satu senario biasa melibatkan menggabungkan pertanyaan SELECT dan UPDATE untuk mendapatkan semula data yang terjejas oleh operasi kemas kini. Pendekatan ini boleh menyelaraskan pemprosesan dan menghapuskan keperluan untuk pertanyaan berasingan.

Dalam kes khusus ini, matlamatnya ialah untuk menggabungkan dua pertanyaan: pernyataan SELECT yang mengambil data berdasarkan kriteria tertentu dan pernyataan KEMASKINI yang mengubah suai baris yang sepadan . Dengan menggabungkan pertanyaan ini, matlamatnya adalah untuk mendapatkan data baris yang dikemas kini dalam satu operasi.

Pada mulanya, pengguna cuba menggunakan subkueri, tetapi hasil yang diinginkan tidak tercapai. Ini mendorong penerokaan kaedah alternatif, termasuk gabungan langsung SELECT dan UPDATE tanpa subkueri.

Penyelesaian: Memanfaatkan Teknik SET dan SELECT

Penyelesaian yang bijak telah ditemui melalui penyelidikan luaran: Dengan menggunakan teknik SET dan SELECT, adalah mungkin untuk mencapai hasil yang diinginkan. Coretan kod yang disediakan menunjukkan pendekatan ini:

<code class="sql">SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;</code>

Penyelesaian ini menggunakan langkah berikut:

  • Memulakan pembolehubah @uids kepada null.
  • Mengemas kini footable dengan menetapkan lajur foo kepada 'bar' untuk baris dengan fooid lebih besar daripada 5.
  • Dalam pertanyaan KEMASKINI, subkueri memperuntukkan nilai fooid yang dikemas kini kepada pembolehubah @uids.
  • Akhir sekali, pertanyaan SELECT mendapatkan semula pembolehubah @uids, yang kini memegang senarai dipisahkan koma bagi nilai fooid yang terjejas.

Atas ialah kandungan terperinci **Bagaimana untuk Mendapatkan Data daripada Baris Terjejas Selepas Pertanyaan KEMASKINI dalam 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