ここのあなたの友達は私が期待するFIND_IN_SETです。私はこの質問で最初にその方法に出くわしました:この質問でもカバーされていますMYSQL-変数入力としてCommaで区切られた文字列を利用するストアドプロシージャ
FIND_IN_SETのMySQLドキュメントはこちら
したがって、手順は次のようになります
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.タイプミスを修正しました。引数にcategoyと入力しました)