0

我正在尝试从具有多个 OR 条件的 SQL 数据表中获取一些数据。假设我在名为 products 的表中有 10 行。

我的查询

SELECT * FROM products 
WHERE product_name = 'nice' OR
product_second_name = 'pretty'
LIMIT 10

如果表中包含 10 个名为“nice”的产品,有没有办法选择 5 个满足第一个条件的产品和另一个 5 个满足第二个条件的产品?

4

1 回答 1

1

您需要使用 UNION 执行 2 个单独的查询:

(SELECT * FROM products 
WHERE product_second_name = 'pretty'
LIMIT 10)
UNION
(SELECT * FROM products 
WHERE product_name = 'nice'
LIMIT 5)

但是,您必须通过 DISTINCT 或其他一些机制来区分重复项。您必须定义如果 product_name 很好并且 product_second_name 很漂亮会发生什么(在您的原始查询中,该产品会出现一次)

于 2013-03-01T08:41:10.740 回答