0

我有一个 sql 语句,它根据在 where 子句中使用 IN 关键字来选择数据,但我希望也能够选择不在传入的 select 参数中的数据。我将在表单中有一个列表IN(1,2,6,4) 在 IN 子句中传递。但我希望能够选择与 IN 子句中的内容不匹配的所有其他数据。这是我的示例 sql的链接

WHERE pf.filter_value_id IN(1)

但我也希望能够选择使用 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)
4

1 回答 1

2

IS NOT IN不是有效的 MySQL。您应该确保检查查询语法错误。相反,您只想检查该子句的否定。IN正是NOT IN你所需要的。

于 2013-04-21T23:47:28.690 回答