我有一个字符串变量@IDS
,我正在尝试从表中过滤记录,user
但由于我是 MySql 的新手,所以没有任何帮助。
SET @IDS = '1,2,3';
select * from user where find_in_set(@IDS,ID);
我有一个字符串变量@IDS
,我正在尝试从表中过滤记录,user
但由于我是 MySql 的新手,所以没有任何帮助。
SET @IDS = '1,2,3';
select * from user where find_in_set(@IDS,ID);
您需要切换参数的顺序:
SELECT *
FROM user
WHERE FIND_IN_SET(ID, @IDS);
从文档中:
FIND_IN_SET(str,strlist)
如果字符串 str 在包含 N 个子字符串的字符串列表 strlist 中,则返回 1 到 N 范围内的值
换句话说,第一个参数是您试图在 CSV 字符串列表中查找的字符串,这是第二个参数。如果ID
可以在 中找到@IDS
,则返回匹配的索引(从 1 开始)。如果找不到匹配项,则返回零。