0

我有一个包含几列的基本数据库,我将在下面向您展示

我有一个程序,允许用户输入他们是男性还是女性,或者如果他们想输入 NULL

然后他们必须选择一个类别,例如爱或烹饪

我试过这个查询,但它没有用它显示其他性别忽略 Where Gender = M 语句

它只能是一种性别,但可以是不同类型的类别

任何帮助,将不胜感激

SELECT *
FROM products
WHERE Gender = "M"
AND Category = "Love"
OR Category =  "Cooking"

数据库

Id Name Gender Category 
1   AB    M      Love
2   AC    F      Love
3   AS    M      Cooking
4   SF    Null   Cooking 
4

3 回答 3

2

您需要在 OR 周围添加括号

就像是

SELECT *
FROM products
WHERE Gender = "M"
AND (Category = "Love"
OR Category =  "Cooking")

你拥有它的方式,它会是一样的

SELECT *
FROM products
WHERE (Gender = "M"
AND Category = "Love")
OR Category =  "Cooking"

查看运算符优先级

于 2013-11-12T11:47:09.427 回答
1

您必须将类别括在括号中,以告知查询性别必须为 "M" :

SELECT *
FROM products
WHERE Gender = "M"
AND (Category = "Love"
OR Category =  "Cooking")
于 2013-11-12T11:47:21.003 回答
0

我认为你需要在这里使用 IN 运算符,试试这个:

SELECT *
FROM products
WHERE Gender = 'M'
AND Category IN ('Love','Cooking')
于 2013-11-12T11:57:45.627 回答