MySQL变量格式,用于“ NOT IN”值列表
疯狂尝试在类型查询中设置变量:
SET @idcamposexcluidos='817,803,495';
这样我就可以在
WHERE id_campo not in (@idcamposexcluidos)
我尝试过用不同的格式定义变量,但是没有运气,似乎也找不到上述的特定示例:
SET @idcamposexcluidos='(817,803,495)';...
WHERE id_campo not in @idcamposexcluidos
SET @idcamposexcluidos=817,803,495;
没有成功。它要么返回错误,要么忽略值。
回答:
您不能使用这样的IN
子句。它在您的子句中编译为 字符串IN
。但是IN
子句需要 值。
WHERE id_campo not in (@idcamposexcluidos)
编译为
WHERE id_campo not in ('817,803,495')
但应该是
WHERE id_campo not in ('817','803','495')
为了克服这个问题,可以使用动态SQL或在MySQL中使用FIND_IN_SET:
SET @idcamposexcluidos='817,803,495';...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
但是使用像这样的函数FIND_IN_SET()
不能使用索引。
以上是 MySQL变量格式,用于“ NOT IN”值列表 的全部内容, 来源链接: utcz.com/qa/415287.html