我正在尝试从具有多个OR条件的SQL数据表中获取一些数据。 可以说我在表中有10行命名产品。
我的查询
SELECT * FROM products
WHERE product_name = 'nice' OR
product_second_name = 'pretty'
LIMIT 10
如果表中包含10个名为“nice”的产品,有没有办法选择满足第一个条件的5个产品和另外满足第二个条件的5个产品?
答案 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很漂亮会发生什么(在你的原始查询中,产品会出现一次)