开发者社区> 问答> 正文

MySQL变量格式,用于“ NOT IN”值列表?mysql

疯狂尝试在类型查询中设置变量:

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; 没有成功。它要么返回错误,要么忽略值。

展开
收起
保持可爱mmm 2020-05-17 13:51:13 756 0
1 条回答
写回答
取消 提交回答
  • 您不能使用这样的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

    2020-05-17 14:00:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像