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

Bagaimana Melewati Daftar String di Prosedur Tersimpan MySQL?

Teman Anda di sini adalah FIND_IN_SET yang saya harapkan. Saya pertama kali menemukan metode itu dalam pertanyaan ini:juga tercakup dalam pertanyaan ini MYSQL - Prosedur Tersimpan Menggunakan String yang Dipisahkan Koma Sebagai Input Variabel

Dokumentasi MySQL untuk FIND_IN_SET ada di sini http ://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set

Jadi prosedur Anda akan menjadi

CREATE DEFINER=`root`@`localhost` 
PROCEDURE `search_equipment`(
    IN equip VARCHAR(100), 
    IN category VARCHAR(255)
)
BEGIN
    SELECT *
    FROM Equipment
    WHERE e_description LIKE CONCAT("%",equip,"%")
    AND FIND_IN_SET(e_type,category)
END

Ini bergantung pada string kategori sebagai daftar yang dipisahkan koma, sehingga kode panggilan Anda menjadi

String type = "I.T. Equipment,Office Supply";

CALL search_equipment('some equipment', type);

(p.s. memperbaiki kesalahan ketik, dalam argumen Anda, Anda telah mengetik kategori)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bantuan dengan kueri melalui tabel relasi

  2. Bagaimana cara menyimpan alamat yang kompatibel dengan IPv6 dalam database relasional

  3. Dalam SQL, bagaimana cara mengecualikan hasil dari SELECT * FROM ...?

  4. MySQL - Algo Hash mana yang harus saya gunakan untuk ini?

  5. Hapus baris dengan pembuat kueri Laravel dan LEFT JOIN