Rumah  >  Artikel  >  pangkalan data  >  ## Bagaimana untuk Dapatkan dan Kemas Kini Baris MySQL dalam Operasi Tunggal Tanpa Subkueri?

## Bagaimana untuk Dapatkan dan Kemas Kini Baris MySQL dalam Operasi Tunggal Tanpa Subkueri?

Susan Sarandon
Susan Sarandonasal
2024-10-25 02:26:30732semak imbas

## How to Retrieve and Update MySQL Rows in a Single Operation Without Subqueries?

Pertanyaan untuk Dapatkan dan Kemas Kini Baris MySQL dalam Operasi Tunggal

Menggabungkan pertanyaan SELECT dan UPDATE ke dalam satu operasi boleh meningkatkan kecekapan dan mengurangkan kod kerumitan. Artikel ini meneroka penyelesaian untuk mencapai objektif ini tanpa menggunakan subkueri.

Teka-teki

Seorang pengguna meminta bantuan dalam menggabungkan pertanyaan MySQL berikut:

SELECT * FROM table WHERE group_id = 1013 and time > 100;
UPDATE table SET time = 0 WHERE group_id = 1013 and time > 100

Prosedur berikut bernama "update_and_retrieve" menyelesaikan tugas:

Prosedur Invocation

Untuk menggunakan prosedur tersimpan, hanya laksanakan penyataan berikut:

<code class="mysql">CREATE PROCEDURE update_and_retrieve(IN group_id INT, IN time INT)
BEGIN
    DECLARE updated_ids VARCHAR(255);

    UPDATE table SET time = 0 WHERE group_id = group_id AND time > time;

    SET updated_ids = (SELECT GROUP_CONCAT(fooid) FROM table WHERE group_id = group_id AND time > time);

    SELECT * FROM table WHERE fooid IN (updated_ids);
END;</code>
Ini akan mengemas kini medan "masa" kepada sifar untuk baris yang layak dan kemudian mendapatkan dan memaparkan baris yang dikemas kini itu.

Faedah

Pendekatan ini menawarkan beberapa kelebihan:
<code class="mysql">CALL update_and_retrieve(1013, 100);</code>

Mengelakkan perjalanan pergi balik rangkaian yang tidak perlu dengan menggabungkan berbilang operasi ke dalam satu panggilan.

Memudahkan struktur kod dengan menghapuskan keperluan untuk pertanyaan berasingan.

Meningkatkan prestasi dengan mengurangkan beban pangkalan data.

Atas ialah kandungan terperinci ## Bagaimana untuk Dapatkan dan Kemas Kini Baris MySQL dalam Operasi Tunggal Tanpa Subkueri?. 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