Mysql选择变量
我需要一个这样的问题Mysql选择变量,mysql,Mysql,我需要一个这样的问题 Set @var1:="30,31"; Select * from mytable where id in (@var) 我试过更多的桌子, 但是MySQL返回空值。 为什么?要做到这一点,需要动态SQL。准备好的语句是一种常见的方法,除了难以将未知数量的值绑定到中的子句之外。假设您总是只绑定两个值,我们可以尝试: SET @sql = 'SELECT * FROM mytable WHERE id IN (?, ?)'; PREPARE stmt2 FROM @sql;
Set @var1:="30,31";
Select * from mytable where id in (@var)
我试过更多的桌子,
但是MySQL返回空值。
为什么?要做到这一点,需要动态SQL。准备好的语句是一种常见的方法,除了难以将未知数量的值绑定到
中的子句之外。假设您总是只绑定两个值,我们可以尝试:
SET @sql = 'SELECT * FROM mytable WHERE id IN (?, ?)';
PREPARE stmt2 FROM @sql;
SET @var1 = 30;
SET @var2 = 31;
EXECUTE stmt2 USING @var1, @var2;
您可以使用find\u in\u set()
check
MySQL返回NULL
value,因为搜索字符串而不是值列表,因为@var1是一个varchar变量而不是值列表。这并不重要,但您正在测试尚未设置的@VAR。是否检查了明显的打字错误?
SET @var1 = "30,31";
SELECT * FROM mytable WHERE find_in_set(myTable.myColumn, @var1);