使用逗号分隔的字符串过滤记录

时间:2016-09-18 08:53:22

标签: mysql find-in-set

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

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

1 个答案:

答案 0 :(得分:1)

您需要切换参数的顺序:

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

来自documentation

  

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

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