Php mysql使用IF NOT IN关键字或可选项选择所有其他数据

Php mysql使用IF NOT IN关键字或可选项选择所有其他数据,php,mysql,Php,Mysql,我有一个sql语句,它根据在where子句中使用IN关键字来选择数据,但我也希望能够选择不在传入的select参数中的数据。我将有一份格式为(1,2,6,4)的清单,该清单将在in条款中通过。但我希望能够选择与in子句中的内容不匹配的所有其他数据。这里有一个链接到我的 但我也希望能够使用in子句选择正在传入的数据 WHERE pf.filter_value_id IS NOT IN(1) // this doesn't work 不起作用的slq: SELECT p.product_id, p

我有一个sql语句,它根据在where子句中使用IN关键字来选择数据,但我也希望能够选择不在传入的select参数中的数据。我将有一份格式为(1,2,6,4)的清单,该清单将在in条款中通过。但我希望能够选择与in子句中的内容不匹配的所有其他数据。这里有一个链接到我的

但我也希望能够使用in子句选择正在传入的数据

WHERE pf.filter_value_id IS NOT IN(1) // this doesn't work
不起作用的slq:

SELECT p.product_id, p.title, fv.filter_value 
  FROM products p    
  INNER JOIN product_filters pf on pf.product_id = p.product_id
  LEFT JOIN filters f on f.filter_id = pf.filter_id
  RIGHT JOIN filter_values fv on fv.filter_value_id = pf.filter_value_id
WHERE pf.filter_value_id IS NOT IN(1)

不在中
无效。您应该确保检查查询语法错误。相反,您只需要在子句中检查
的类型。只需
不在
中即可。

不在
中,不
不在
中<代码>IS
仅与
IS NULL
IS NOT NULL
SELECT p.product_id, p.title, fv.filter_value 
  FROM products p    
  INNER JOIN product_filters pf on pf.product_id = p.product_id
  LEFT JOIN filters f on f.filter_id = pf.filter_id
  RIGHT JOIN filter_values fv on fv.filter_value_id = pf.filter_value_id
WHERE pf.filter_value_id IS NOT IN(1)