首页 > 数据库 > mysql教程 > 如何将 MySQL 的'NOT IN”子句与值列表一起使用?

如何将 MySQL 的'NOT IN”子句与值列表一起使用?

DDD
发布: 2025-01-01 13:56:11
原创
171 人浏览过

How to Use MySQL's

“NOT IN”值列表的 MySQL 语法

问题:

如何定义 MySQL 变量在“NOT IN”子句中使用的值列表,有效地从一个值中排除多个值查询?

答案:

使用值列表构造“NOT IN”子句时,必须避免将整个列表用作单个字符串条款。 MySQL 将其编译为统一字符串,而“NOT IN”子句则需要单独的值。考虑以下示例:

WHERE id_campo NOT IN (@idcamposexcluidos)
登录后复制

编译为:

WHERE id_campo NOT IN ('817,803,495')
登录后复制

但是,正确的语法是:

WHERE id_campo NOT IN ('817', '803', '495')
登录后复制

要克服这个问题,有两种常见的方法:

  • 动态 SQL:使用正确的语法构造查询字符串,确保在“NOT IN”子句中指定各个值。
  • FIND_IN_SET: MySQL 提供了 FIND_IN_SET() 函数,可以用作如下:
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
登录后复制

需要注意的是,使用FIND_IN_SET()函数如果在“id_campo”列上使用索引,可能会影响性能。

以上是如何将 MySQL 的'NOT IN”子句与值列表一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板