4 回答
TA贡献1810条经验 获得超4个赞
您可以在列表中传递字符串,并使用准备好的语句来运行查询,例如-
DELIMITER $$
CREATE PROCEDURE GetFruits(IN fruitArray VARCHAR(255))
BEGIN
SET @sql = CONCAT('SELECT * FROM Fruits WHERE Name IN (', fruitArray, ')');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
$$
DELIMITER ;
如何使用:
SET @fruitArray = '\'apple\',\'banana\'';
CALL GetFruits(@fruitArray);
TA贡献1873条经验 获得超9个赞
只需像这样使用FIND_IN_SET:
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
因此,您可以执行以下操作:
select * from Fruits where FIND_IN_SET(fruit, fruitArray) > 0
TA贡献1789条经验 获得超10个赞
这有助于我做IN条件,希望这对您有帮助。
CREATE PROCEDURE `test`(IN Array_String VARCHAR(100))
BEGIN
SELECT * FROM Table_Name
WHERE FIND_IN_SET(field_name_to_search, Array_String);
END//;
致电:
call test('3,2,1');
添加回答
举报