限制一行OR语句的最大行数选择

时间:2013-03-01 08:37:12

标签: sql conditional-statements

我正在尝试从具有多个OR条件的SQL数据表中获取一些数据。 可以说我在表中有10行命名产品。

我的查询

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

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

1 个答案:

答案 0 :(得分: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很漂亮会发生什么(在你的原始查询中,产品会出现一次)