Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menetapkan Hasil Pertanyaan Dinamik kepada Parameter OUT dalam Prosedur Tersimpan MySQL?
Pelaksanaan Pertanyaan Dinamik dan Tugasan Output dalam Prosedur Tersimpan MySQL
Dalam MySQL, adalah mungkin untuk menjana dan melaksanakan pertanyaan secara dinamik dalam prosedur tersimpan . Walau bagaimanapun, untuk memberikan hasil pertanyaan dinamik kepada parameter OUT, pendekatan yang sedikit berbeza diperlukan.
Pertimbangkan kod prosedur tersimpan yang disediakan dalam soalan:
CREATE PROCEDURE 'searchInvoice' ( OUT numOfRecords INT ) BEGIN DECLARE query1 TEXT; DECLARE query2 TEXT; SET query1 = 'SELECT COUNT(*) bla bla bla.....'; // Query1 to select the count of matching tuples.. SET query2 = 'SELECT * from bla bla bla....'; // Query2 to select original records... // later part of this both queries generate dynamically according to some IN parameters.. // now I wanna assign the output of the query1 into numOfRecords // and I wanna execute the query2 as well.. like this SET @Sql = query2; PREPARE STMT FROM @Sql; EXECUTE STMT; DEALLOCATE PREPARE STMT; // output of the query2 can be read in PHP END
Untuk menetapkan output query1 kepada parameter numOfRecords OUT, langkah berikut boleh diambil:
SET @numOfRecords = 0;
DECLARE query1Cursor CURSOR FOR query1; OPEN query1Cursor; FETCH query1Cursor INTO @numOfRecords; CLOSE query1Cursor;
SET numOfRecords = @numOfRecords;
Dengan ini pendekatan yang diubah suai, prosedur tersimpan boleh melaksanakan kedua-dua pertanyaan dinamik dan menetapkan output pertanyaan khusus kepada parameter OUT.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Hasil Pertanyaan Dinamik kepada Parameter OUT dalam Prosedur Tersimpan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!