样本数据

mysql - 具有多个参数的IN()函数-LMLPHP

当我按照以下方式设置参数时,无法正确获得结果。

查询:

SET @parmClientList ='7,11,14';

Select fkUserID from tbluserclient where MultipleClientID IN(@parmClientList);


但是当我直接声明为硬编码时,我会得到正确的结果。

查询:

select fkUserID from tbluserclient where MultipleClientID IN(7,11,14);


有人可以建议我如何将多个值传递给IN()函数参数。

最佳答案

IN()条件中的列表必须是文字列表,它不会拆分字符串。使用FIND_IN_SET()

SELECT fkUserID FROM tbluserClient
WHERE FIND_IN_SET(CAST(MultipleClientID AS DECIMAL), @parmClientList);


使用CAST(MultipleClientID AS DECIMAL)执行该列从逗号分隔列表到使用IN(7,11,14)测试它时得到的单个数字的相同转换。在这两种情况下,它仅检查列中的第一个数字是否在列表中。

关于mysql - 具有多个参数的IN()函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38454744/

10-09 07:07