Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menetapkan Hasil Pertanyaan Dinamik kepada Parameter OUT dalam Prosedur Tersimpan MySQL?

Bagaimana untuk Menetapkan Hasil Pertanyaan Dinamik kepada Parameter OUT dalam Prosedur Tersimpan MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-30 06:41:101004semak imbas

How to Assign the Result of a Dynamic Query to an OUT Parameter in a MySQL Stored Procedure?

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:

  1. Buat pembolehubah yang ditentukan pengguna untuk menyimpan hasil:
SET @numOfRecords = 0;
  1. Sediakan dan laksanakan pertanyaan dinamik menggunakan kursor:
DECLARE query1Cursor CURSOR FOR query1;
OPEN query1Cursor;
FETCH query1Cursor INTO @numOfRecords;
CLOSE query1Cursor;
  1. Kemas kini parameter OUT dengan nilai yang ditetapkan:
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!

Kenyataan:
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