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

Filter records using a comma separated string

我有一个字符串变量 @IDS,我正在尝试从 table user 中过滤记录,但没有任何帮助,因为我是 [=15] 的新手=].

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

您需要调换参数顺序:

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

来自documentation

FIND_IN_SET(str,strlist)
Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings

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