我的SQL查询在where子句给出了一个行作为输出
问题描述:
该查询返回只有一行我的SQL查询在where子句给出了一个行作为输出
Set @id='2,3,4,5,6,7,8,9';
Set @typers=1;
Select * from Employee where (@typers=1 and pkEmpId in (@id));
如果我们直接在指定2,3,4,5,6,7,8,9查询它的作品,我知道这是因为“'”。
但我m如果同样的问题时,我将值作为参数的过程
call CalculateStandardFinalRun('0','4','1900-01-01 00:00:00','1900-01-01 00:00:00','5','1','2,3,4,5,6,7,8,9');
我怎样才能得到所有值
答
我想你应该试试这个
Select * from Employee where (@typers=1 and FIND_IN_SET(pkEmpId, @id)));
答
你@id
项目是一个字符串。您可能也使用了此语法
pkEmpId in ('something-or-other')
它不会做你想做的。 in
列表中的每个项目必须是单独的数据项。
+0
: - 我还张贴追问之前试过,但它没有给出记录 – Shashank 2013-05-09 12:09:34
: - 谢谢你,我的作品 – Shashank 2013-05-09 12:15:52