MySQL选择变量

时间:2019-06-17 13:31:13

标签: mysql

我需要这样的查询。

Set @var1:="30,31";
Select * from mytable where id in (@var)

我尝试了更多的桌子, 但MySQL返回null值。 为什么?

2 个答案:

答案 0 :(得分:1)

您需要动态SQL来执行此操作。预备语句是一种通用的处理方法,除了将未知数量的值绑定到WHERE IN子句很困难。假设您总是只绑定两个值,我们可以尝试:

SET @sql = 'SELECT * FROM mytable WHERE id IN (?, ?)';
PREPARE stmt2 FROM @sql;
SET @var1 = 30;
SET @var2 = 31;
EXECUTE stmt2 USING @var1, @var2;

答案 1 :(得分:1)

您可以使用find_in_set()选中Here

SET @var1 = "30,31";
SELECT * FROM mytable WHERE find_in_set(myTable.myColumn, @var1);

MySQL返回NULL值,因为搜索字符串而不是值列表