Mysql 返回不需要的行

Mysql 返回不需要的行,mysql,Mysql,我正在尝试根据类别和设计师id筛选我的产品,但是,我返回了一个错误的类别,该类别未连接到特定设计师,这是我尝试的: SELECT * FROM `items` WHERE category = 'dress1' OR category = 'dress2' or category = 'skirt' OR designerID = '1' OR designerID = '2' 现在我得到了dress1、Dress2和裙子的输出,但是设计师id都没有连接到“裙子”类别,为什么它仍

我正在尝试根据类别和设计师id筛选我的产品,但是,我返回了一个错误的类别,该类别未连接到特定设计师,这是我尝试的:

SELECT * 
FROM  `items` 
WHERE category =  'dress1'
OR category =  'dress2'
or category = 'skirt'
OR designerID =  '1'
OR designerID =  '2'
现在我得到了dress1、Dress2和裙子的输出,但是设计师id都没有连接到“裙子”类别,为什么它仍然返回


谢谢

如果我了解您的要求,听起来您希望结果包含
类别
dress1
dress2
,或
裙子
,但前提是他们有
designerID
1
2

如果你需要一个
子句,我会让你的
WHERE
子句如下:

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

我猜你想要这样的东西:

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

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

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

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

是,要求是正确的,但是本条款仍然返回裙子,尽管它肯定不是id 1或2=(@user2209644抱歉,为了澄清,我的查询返回了一行
skirt
,其中id不是
1
2
?你能告诉我
skirt
的id是什么吗?是的,裙子的id是3,dress1和dress2分别是id 1和id 2,看起来我把括号搞乱了,一切都没用w、 谢谢you@user2209644哦,好的,太棒了!