IN where语句中的mysql用户变量

lui*_*son 4 mysql select user-defined

我现在放弃了,并通过其他方式对其进行了排序,但是由于“好奇心杀死了猫”,我试图找出如何在IN where语句中使用mysql查询@variables:

因此,从此:

SELECT * FROM table1 WHERE table1.ID IN (794,758)
Run Code Online (Sandbox Code Playgroud)

尝试包含一个变量,这将返回语法错误:

SET @variousids="(794,758)";
SELECT * FROM table1 WHERE table1.ID IN @variousids
Run Code Online (Sandbox Code Playgroud)

这仅返回第一个值:

SET @variousids="794,758";
SELECT * FROM table1 WHERE table1.ID IN (@variousids)
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的语法,值,但未找到有关定义值列表的任何特定文档。

小智 5

使用find_in_set。以下将工作。

SET @variousids="794,758";
SELECT * FROM table1 WHERE find_in_set(table1.ID,@variousids)
Run Code Online (Sandbox Code Playgroud)