我必须基于字符串类型的列在MySQL中查询表。
-----------------------------------
id | lookupkeys | productid |
-----------------------------------
1 | key1 | 5GEH03 |
2 | key2 | 7445DW |
3 | key3 | 9DSFDF |
4 | key4 | 5GEH03 |
5 | keyN | 7445DW |
-----------------------------------
用于在IN子句中使用的单个输入参数中接受多个值(逗号分隔)的存储过程。
Input : @keys = "key1,key5,key19,key22"
Query : SELECT * FROM MyTable WHERE lookupkeys IN ("key1","key5","key19","key22");
所以基本上我需要一种方法来使逗号分隔输入到IN子句的各个值?
下面是一个虚拟sp
CREATE DEFINER=`xxx_xx`@`%` PROCEDURE `sp_demo_fetch_products`(
IN v_lookupkeys VARCHAR(200)
)
BEGIN
SELECT * FROM products_lookup WHERE lookupkeys IN(here I want to use v_lookupkeys)
AND CONDITION_1
AND CONDITION_2
ORDER BY popularity DESC;
END$$