服务器正在向我返回值

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


谢谢您的帮助

最佳答案

使用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)

10-08 08:00