Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melaksanakan Pertanyaan Dinamik dalam MySQL?

Bagaimana untuk Melaksanakan Pertanyaan Dinamik dalam MySQL?

Linda Hamilton
Lepaskan: 2024-11-29 22:06:11
asal
446 orang telah melayarinya

How to Execute Dynamic Queries in MySQL?

Melaksanakan Pertanyaan Dinamik dalam MySQL

Melaksanakan pertanyaan dinamik, di mana pernyataan SQL itu sendiri dibina pada masa jalan, biasanya dilakukan dalam MSSQL menggunakan prosedur tersimpan EXEC. Walau bagaimanapun, MySQL tidak mempunyai persamaan langsung.

Mengatasi Cabaran

Untuk melaksanakan pertanyaan dinamik dalam MySQL, satu pendekatan ialah membina rentetan pertanyaan sebagai pembolehubah dan kemudian menggunakan penyata PREPARE dan EXECUTE.

Pelaksanaan

Kod berikut menunjukkan cara untuk melaksanakan dinamik pertanyaan dalam MySQL:

SET @queryString = (
SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM (
    SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( 
           SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 
    ) as qwe 
) as www
);

PREPARE stmt FROM @queryString;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 
SET @asd = NULL;
Salin selepas log masuk
  1. Bina rentetan pertanyaan sebagai pembolehubah (@queryString) menggunakan penggabungan rentetan dinamik dan subquery.
  2. Sediakan pernyataan menggunakan pernyataan PREPARE dengan yang dibina rentetan pertanyaan sebagai input.
  3. Laksanakan pernyataan yang disediakan menggunakan EXECUTE pernyataan.
  4. Alokasikan pernyataan yang disediakan menggunakan pernyataan DEALLOCATE PREPARE.

Dengan mengikuti pendekatan ini, MySQL boleh melaksanakan pertanyaan dinamik walaupun pertanyaan itu sendiri tidak diketahui terlebih dahulu.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan Dinamik dalam MySQL?. 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