Rumah > pangkalan data > tutorial mysql > Bolehkah MySQL Melaksanakan String sebagai Pertanyaan Seperti JavaScript\'s eval()?

Bolehkah MySQL Melaksanakan String sebagai Pertanyaan Seperti JavaScript\'s eval()?

Mary-Kate Olsen
Lepaskan: 2024-11-29 09:35:16
asal
364 orang telah melayarinya

Can MySQL Execute a String as a Query Like JavaScript's eval()?

Bolehkah MySQL Melaksanakan String sebagai Pertanyaan?

Soalan:

Dalam MySQL persekitaran, cuba untuk melaksanakan prosedur tersimpan yang lulus dalam varchar sebagai pertanyaan melalui EXEC atau CALL telah terbukti tidak berjaya. Adakah terdapat MySQL yang setara dengan fungsi eval JavaScript yang membolehkannya?

Jawapan:

Ya, teknik berikut menyediakan pelaksanaan MySQL yang serupa dengan eval JavaScript:

  1. Tentukan pembolehubah SQL (@queryString) menggunakan CONCAT untuk menjana rentetan pertanyaan secara dinamik daripada parameter varchar.
  2. Sediakan pernyataan (stmt) berdasarkan @queryString menggunakan PREPARE.
  3. Laksanakan pernyataan yang disediakan (stmt) menggunakan EXECUTE.
  4. Agihkan pernyataan yang disediakan menggunakan DEALLOCATE BERSEDIA.
  5. Tetapkan semula pembolehubah SQL (@asd) kepada NULL.

Sebagai contoh:

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

Atas ialah kandungan terperinci Bolehkah MySQL Melaksanakan String sebagai Pertanyaan Seperti JavaScript\'s eval()?. 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