【发布时间】:2012-08-11 01:26:27
【问题描述】:
疯狂地尝试在类型查询中设置变量:
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。您需要单独的变量或使用动态 SQL。 -
FIND_IN_SET和LIKE适用于小桌子。但他们表现不佳,因为他们必须查看每一行。大多数语言都没有简单的方法(如果有的话)来构造更快的IN(...)子句,它可以使用索引。