SQL按日期排序每个第一个字母

问题描述 投票:-3回答:1

我需要一个SQL查询,它返回名称以A开头的所有行,并按日期排序。然后返回名称以B开头的所有行,并按日期等顺序排序。此外,粘性项目需要位于结果之上。我需要它作为一个SQL查询,因为分页。可以这样做吗?如果是这样,怎么样?

我真的付出了一些努力,但无法接近解决方案。不幸的是,我没有使用SQL作为起点。

数据库

id | name | date        | sticky
1  | aa   | 12-16-2017  | 0
2  | ab   | 12-14-2017  | 0
3  | ac   | 12-15-2017  | 0
4  | ba   | 12-16-2017  | 0
5  | bb   | 12-14-2017  | 0
6  | bc   | 12-15-2017  | 1

结果

1 bc (sticky)
2 ab (start a order by date)
3 ac
4 aa
5 bb (start b order by date)
6 ba
mysql sql select sql-order-by
1个回答
0
投票

你只需要按比特(降序),名字的第一个字母和日期排序:

SELECT   *
FROM     `mytable`
ORDER BY `sticky` DESC, LEFT(`name`, 1), `date`
© www.soinside.com 2019 - 2024. All rights reserved.