Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để vượt qua danh sách chuỗi trong thủ tục lưu trữ MySQL?

Tôi mong đợi bạn của bạn ở đây là FIND_IN_SET. Lần đầu tiên tôi bắt gặp phương pháp đó trong câu hỏi này:cũng được đề cập trong câu hỏi này MYSQL - Quy trình được Lưu trữ Sử dụng Chuỗi được Phân tách bằng Dấu phẩy làm Đầu vào Biến

MySQL documention cho FIND_IN_SET có tại đây http ://dev.mysql.com/doc/refman/5.0/en/string-functions.html# Chức năng_find-in-set

Vì vậy, thủ tục của bạn sẽ trở thành

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

Điều này phụ thuộc vào chuỗi danh mục là một danh sách được phân tách bằng dấu phẩy và do đó mã gọi điện của bạn trở thành

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

CALL search_equipment('some equipment', type);

(p.s. đã sửa lỗi đánh máy, trong các đối số của bạn, bạn đã gõ phân loại)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kết hợp 3 truy vấn này thành một truy vấn MySQL?

  2. Cách thực hiện 2 truy vấn cập nhật trong một giao dịch với JDBC

  3. Lưu trữ nhiều địa chỉ email trong cơ sở dữ liệu cho các kiểu người dùng khác nhau

  4. Cập nhật câu lệnh trong MySQL bằng C #

  5. Sử dụng PHP để thực thi nhiều truy vấn MYSQL