问题:
如何定义 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')
要克服这个问题,有两种常见的方法:
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
需要注意的是,使用FIND_IN_SET()函数如果在“id_campo”列上使用索引,可能会影响性能。
以上是如何将 MySQL 的'NOT IN”子句与值列表一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!