在MySQL中选择同一列中的两个不同值

3

查询

SELECT *
FROM `products`
WHERE (
`category` = 'a'
AND `category` = 'b'
)

MySQL

products
---
id      sku     category
-------------------------
1       34343   a
2       32523   d
3       23234   b
4       23433   b
5       23442   c

我希望返回A和B

5个回答

9
SELECT *
FROM `products`
WHERE (
`category` = 'a'
OR `category` = 'b'
)

或者

SELECT *
FROM `products`
WHERE
`category` IN ('a', 'b')

您可以使用IN子句来替换许多OR条件。IN子句只是检查一个值是否在一组值中。


2

你需要使用OR运算符,因为使用AND运算符会选择类别为A和B的内容,但是你需要选择类别为A或B的内容。

SELECT *
FROM `products`
WHERE (
`category` = 'a' OR `category` = 'b'
)

1
SELECT *
FROM `products`
WHERE `category` in('a','b')

1

选择 * 从 产品 其中 类别 在 ('a', 'b')


1
你可以这样做:

SELECT c1 FROM table WHERE c2 IN (1,2,3,4) GROUP BY c1 HAVING COUNT(c2)=4;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接