返回不需要的行

时间:2013-09-20 18:26:43

标签: mysql

我正在尝试根据设计师的类别和ID来过滤我的产品,但是,我得到了一个错误的类别,它没有连接到特定的设计师,这就是我尝试过的:

SELECT * 
FROM  `items` 
WHERE category =  'dress1'
OR category =  'dress2'
or category = 'skirt'
OR designerID =  '1'
OR designerID =  '2'

现在我得到了dress1,连衣裙2和裙子的输出,但是这两个设计师ID都没有连接到“裙子”类别,为什么它仍然会被退回?

谢谢

3 个答案:

答案 0 :(得分:3)

我猜你想要这样的东西:

SELECT 
  *
FROM 
  items
WHERE
  category in ('dress1','dress2','skirt')
  and designerID in ('1','2')

答案 1 :(得分:2)

如果我理解您的要求,听起来您希望结果包含category dress1dress2skirt,但前提是designerID 1 1 {}} 2AND

如果是,那么你需要一个WHERE条款,我会让你的WHERE (category = 'dress1' OR category = 'dress2' OR category = 'skirt') AND (designerID = '1' OR designerID = '2') 子句看起来像这样:

{{1}}

答案 2 :(得分:0)

试试这个:如果你想要设计师1和2以及所有三个dres类型

SELECT * FROM  `items` WHERE category in('dress1','dress2','skirt') OR designerID in('1','2');

如果你想要设计师和dres put和AND的组合而不是OR