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

4

5 回答 5

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

或者

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

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

于 2012-10-04T10:13:11.353 回答
2

您必须使用 OR 运算符,因为使用 AND 您可以选择类别为 A 和 B 的位置,但您必须选择类别为 A 或 B 的位置

SELECT *
FROM `products`
WHERE (
`category` = 'a' OR `category` = 'b'
)
于 2012-10-04T10:14:14.250 回答
1
SELECT *
FROM `products`
WHERE `category` in('a','b')
于 2012-10-04T10:14:04.160 回答
1

SELECT * FROM products WHERE categoryin ('a', 'b')

于 2012-10-04T10:24:33.413 回答
1

你可以这样做:

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

于 2012-10-04T12:01:33.490 回答