4 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以在列表中傳遞字符串,并使用準(zhǔn)備好的語句來運(yùn)行查詢,例如-
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貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
只需像這樣使用FIND_IN_SET:
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
因此,您可以執(zhí)行以下操作:
select * from Fruits where FIND_IN_SET(fruit, fruitArray) > 0

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
這有助于我做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');
添加回答
舉報(bào)