你在这里的朋友是我期待的FIND_IN_SET.我在这个问题中首次遇到了这种方法:这个问题也包含在
MYSQL – Stored Procedure Utilising Comma Separated String As Variable Input中
所以你的程序将成为
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
这依赖于类别字符串是逗号分隔的列表,因此您的调用代码变为
String type = "I.T. Equipment,Office Supply";
CALL search_equipment('some equipment', type);
(p.s.修正了一个拼写错误,在你的论据中你输入了类别)