Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh menghantar tatasusunan kepada Prosedur Tersimpan MySQL?

Bagaimanakah saya boleh menghantar tatasusunan kepada Prosedur Tersimpan MySQL?

Patricia Arquette
Lepaskan: 2024-12-08 18:49:12
asal
1028 orang telah melayarinya

How Can I Pass Arrays to MySQL Stored Procedures?

Melalukan Tatasusunan kepada Rutin Tersimpan MySQL

Keperluan biasa ialah menghantar tatasusunan nilai sebagai parameter kepada rutin disimpan MySQL. Walau bagaimanapun, tidak seperti kebanyakan sistem pengurusan pangkalan data lain, MySQL tidak menyokong fungsi ini secara asli.

Satu penyelesaian yang berdaya maju ialah menukar tatasusunan kepada rentetan dan menyampaikannya sebagai hujah. Rentetan ini kemudiannya boleh digunakan dalam rutin yang disimpan untuk mencipta jadual sementara menggunakan penyataan CONCAT() dan SELECT INTO:

DELIMITER $$

CREATE PROCEDURE GetFruits(IN fruitArray VARCHAR(255))
BEGIN

  SET @sql = CONCAT('SELECT * FROM Fruits WHERE Name IN (', fruitArray, ')');
  PREPARE stmt FROM @sql;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;

END
$$

DELIMITER ;
Salin selepas log masuk

Dengan menghantar tatasusunan bertali ke dalam prosedur GetFruits, anda boleh mencipta sementara secara dinamik jadual yang mengandungi nama buah yang ditentukan, membolehkan pemprosesan selanjutnya dalam skrip anda.

Untuk menggunakan prosedur ini, anda boleh menetapkan tatasusunan rentetan kepada pembolehubah MySQL dan kemudian menggunakan rutin yang disimpan:

SET @fruitArray = '\'apple\',\'banana\'';
CALL GetFruits(@fruitArray);
Salin selepas log masuk

Pendekatan ini secara berkesan membolehkan anda menghantar tatasusunan nilai kepada rutin yang disimpan dalam MySQL, memudahkan operasi pangkalan data kompleks yang melibatkan senarai rentetan panjang pembolehubah.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menghantar tatasusunan kepada Prosedur Tersimpan 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