【发布时间】:2017-05-19 14:41:36
【问题描述】:
例如,我有一个名为“电影”的表格;
|id|title |rating|
|1 |Qwerty|4 |
|2 |Zxcv |0 |
|3 |Asdf |2 |
|4 |Jkl |0 |
|5 |Uiop |5 |
所以我想查询该表,结果必须按标题排序,但所有评分大于零的数据首先显示,并且也可能限制结果,例如从该表中,我希望查询结果像这个;
expected result with LIMIT 5
|id|title |rating|
|3 |Asdf |2 |
|5 |Uiop |5 |
|1 |Qwerty|4 |
|4 |Jkl |0 |
|2 |Zxcv |0 |
expected result with LIMIT 2
|id|title |rating|
|3 |Asdf |2 |
|5 |Uiop |5 |
我试过这段代码,
(SELECT * FROM films WHERE rating > 0 ORDER BY title)
UNION ALL
(SELECT * FROM films WHERE rating = 0 ORDER BY title) LIMIT 5
但在使用UNION ALL 时,() 中的order by 会被忽略。
【问题讨论】:
标签: mysql sorting group-by sql-order-by union