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

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

DDD
DDD原创
2025-01-01 13:56:11199浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn