当尝试使用“NOT IN”列表排除 MySQL 查询中的某些值时,分配一个将变量设置为排除值可能是一个方便的解决方案。但是,确保正确的变量格式至关重要。
如查询中所述,您尝试为变量“@idcamposexcluidos”分配不同的格式:
但是,这些格式都无法按预期工作。原因是“IN”子句需要单独的值,而不是单个字符串。因此,查询:
WHERE id_campo not in (@idcamposexcluidos)
实际上变成:
WHERE id_campo not in ('817,803,495')
,这是不正确的。这些值应作为单独的字符串文字提供:
WHERE id_campo not in ('817','803','495')
要解决此问题,有两个选项:
SET @idcamposexcluidos='817,803,495'; ... WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
注意使用 FIND_IN_SET()函数可能会影响索引的使用。
以上是如何正确格式化 MySQL 变量以便在'NOT IN”子句中使用?的详细内容。更多信息请关注PHP中文网其他相关文章!