我必须运行这样的查询(查询 1)-
select something from sometable where someId in (1,2,3)
我想为 ID 部分保留一个变量,如下所示(查询 2)-
set @myIds = "1,2,3";
select something from sometable where someId in (@myIds);
但这并没有给出预期的结果(给出空结果集),也没有查询错误。
我检查过,如果我将逗号分隔的 ID 括在引号内,查询结果将是一个空结果集(查询 3)-
select something from sometable where someId in ("1,2,3");
我想当我使用像上面所示的变量@myIds(查询2)时,它正在评估上面的查询(查询3)。
你需要有一个动态sql,
SET @myIds = '1,2,3';
SET @sql = CONCAT('select something from sometable where someId in (',@myIds,')');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
- SQLFiddle 演示 http://sqlfiddle.com/#!2/8d019/2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)