2016-09-18 61 views
0

我有一个字符串变量@IDS,我试图过滤来自表user的记录,但没有帮助我,因为我是MySql的新手。使用逗号分隔字符串筛选记录

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

要自己来阅读说明书有多困难,以确保您正确使用某个功能? – Barmar

回答

1

您需要切换参数的顺序:

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

documentation

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

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