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
Lepaskan: 2024-12-30 06:41:10
asal
1025 orang telah melayarinya

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
Salin selepas log masuk

Untuk menetapkan output query1 kepada parameter numOfRecords OUT, langkah berikut boleh diambil:

  1. Buat pembolehubah yang ditentukan pengguna untuk menyimpan hasil:
SET @numOfRecords = 0;
Salin selepas log masuk
  1. Sediakan dan laksanakan pertanyaan dinamik menggunakan kursor:
DECLARE query1Cursor CURSOR FOR query1;
OPEN query1Cursor;
FETCH query1Cursor INTO @numOfRecords;
CLOSE query1Cursor;
Salin selepas log masuk
  1. Kemas kini parameter OUT dengan nilai yang ditetapkan:
SET numOfRecords = @numOfRecords;
Salin selepas log masuk

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