Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - Menggunakan hasil prosedur tersimpan untuk mendefinisikan pernyataan IN

Jenis pengembalian apa yang dimiliki prosedur tersimpan Anda saat ini? Anda berbicara tentang "daftar", jadi TEKS?

Mungkin ada cara yang lebih mudah, tetapi satu hal yang dapat Anda lakukan (di dalam prosedur tersimpan lainnya) adalah membuat kueri lain.

Untuk melakukan itu, kita perlu mengatasi dua keterbatasan MySQL:a) Untuk mengeksekusi SQL dinamis di dalam prosedur tersimpan, perlu pernyataan yang disiapkan. b) Pernyataan yang disiapkan hanya dapat dibuat dari variabel pengguna. Jadi SQL lengkapnya adalah:

SET @the_list = myStoredProc();
SET @the_query = CONCAT('SELECT * FROM myTable WHERE columnName IN (' , @the_list , ')');
PREPARE the_statement FROM @the_query;
EXECUTE the_statement;

Jika Anda berbicara tentang mengembalikan kumpulan hasil dari rutinitas tersimpan dan kemudian menggunakannya sebagai tabel, itu tidak mungkin. Anda perlu membuat tabel sementara untuk mengatasi batasan ini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih dari tabel yang sama sebagai Sisipan atau Perbarui

  2. MySQL dinamis dengan variabel lokal

  3. Bagaimana cara mengambil data dari database MySQL dalam JavaScript untuk membuat bagan?

  4. mod penulisan ulang, siput judul, dan htaccess

  5. Tidak diizinkan untuk mengembalikan set hasil dari pemicu