具有多个值的 Mysql 变量

mdo*_*otk 5 mysql

当变量中存储单个值时,以下内容按预期工作:

Set @var = 121;
select * from table where id = @var;
Run Code Online (Sandbox Code Playgroud)

如何设置具有多个值的变量,然后在查询中使用它。我试过这个,但它不起作用:

set @var = (
  117,120,121,122,143,151,175,233,387,189,118,119,339,357,500,501,493,425,307,191,
  117,120,121,122,143,151,175,233,387,189,118,119,339,357,500,501,493,425,307,191,
  117,120,121,122,143,151,175,233,387,189,118,119,339,357,500,501,493,425,307,191
)
select * from table where id = @var;
Run Code Online (Sandbox Code Playgroud)

小智 5

set @var = '
  117,120,121,122,143,151,175,233,387,189,118,119,339,357,500,501,493,425,307,191,
  117,120,121,122,143,151,175,233,387,189,118,119,339,357,500,501,493,425,307,191,
  117,120,121,122,143,151,175,233,387,189,118,119,339,357,500,501,493,425,307,191'

SELECT * FROM table WHERE FIND_IN_SET(id,@var);
Run Code Online (Sandbox Code Playgroud)

谢谢哥们儿


Eye*_*eam -1

你应该使用IN

select * from table where id IN ( @var );
Run Code Online (Sandbox Code Playgroud)

  • 这会引发“错误 1241 (21000):操作数应包含 1 列”。 (2认同)