0

我有一个字符串变量@IDS,我正在尝试从表中过滤记录,user但由于我是 MySql 的新手,所以没有任何帮助。

SET @IDS = '1,2,3';
select * from user where find_in_set(@IDS,ID);
4

1 回答 1

1

您需要切换参数的顺序:

SELECT *
FROM user
WHERE FIND_IN_SET(ID, @IDS);

文档中:

FIND_IN_SET(str,strlist)
如果字符串 str 在包含 N 个子字符串的字符串列表 strlist 中,则返回 1 到 N 范围内的值

换句话说,第一个参数是您试图在 CSV 字符串列表中查找的字符串,这是第二个参数。如果ID可以在 中找到@IDS,则返回匹配的索引(从 1 开始)。如果找不到匹配项,则返回零。

于 2016-09-18T08:54:30.980 回答