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