按字段顺序排列有两个子字符串

时间:2018-01-16 18:48:24

标签: mysql

服务器正在返回值

id, dia_hora
1   SEG-20h
2   SEG-09h
3   QUI-11h
4   SEX-09h

此查询适用于首字母缩略词

select * from agenda_padrao ORDER BY (
   FIELD(SUBSTRING(dia_hora,1,3), 'DOM', 'SEG', 'TER', 'QUA', 'QUI', 'SEX', 'SAB')
 )

但我需要先按首字母排序缩写,然后按升序排列这两个数字

像这样

2   SEG-09h
1   SEG-20h
3   QUI-11h
4   SEX-09h

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

使用mysql函数FIELD()分配订单。

ORDER BY FIELD(SUBSTRING(dia_hora,1,3), 'DOM', 'SEG', 'TER', 'QUA', 'QUI', 'SEX', 'SAB'),
         cast(substring(dia_hora, 5,6) as unsigned)