疯狂尝试在类型查询中设置变量:
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()不能使用索引。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。