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

Susan Sarandon
Lepaskan: 2024-10-25 02:26:30
asal
731 orang telah melayarinya

## 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;
Salin selepas log masuk
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>
Salin selepas log masuk
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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!