SQL命令的顶行与其他行不同

时间:2016-10-31 20:06:49

标签: mysql

有没有办法如何以不同于其他方式的方式排序查询中的顶行?例如,如果我有一个名称和价格的产品清单,我希望按照价格desc排序最便宜的10种产品的方式订购清单,下面的其余产品按产品名称排序。 / p>

我的想法是这样的:

SELECT id,name, price FROM products ORDER BY price DESC LIMIT 10
UNION ALL
SELECT id,name,price FROM products
  WHERE id NOT IN
  (SELECT id FROM products ORDER BY price DESC LIMIT 10)
  ORDER BY name

但是这个查询没有执行,它打印Incorrect usage of UNION and ORDER BY,而且如果我将选择包装到另一个选择中,它会打印LIMIT & IN/ALL/ANY/SOME subquery。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

select * from 
(
SELECT 1 a, id,name, price FROM products ORDER BY price DESC LIMIT 10
UNION ALL
SELECT 0, id,name,price FROM products
  WHERE id NOT IN
  (SELECT id FROM products ORDER BY price DESC LIMIT 10)
)
order by a*price desc, name