MySQL 根据指定顺序排列

 

MySQL可以根据数字或者文字进行 DESC 或者 ASC 的排列,但是有时候我们储存的数据不一定就按照这个方式存。比如,星期,月份,如果是存数字可以还好,但是存文字方式就会与我们的预想有出入。

可以用 FIELD() 函数进行排序,代码如下:

select * , t2.type as timeType
from 
ims_rooit_class_data as t1
LEFT JOIN
ims_rooit_class_timelist as t2
on t1.data = t2.timeid
LEFT JOIN 
ims_rooit_class_records as t3
on t1.reid = t3.reid
WHERE
t1.type = 'timerange'
ORDER BY
timeType asc,
FIELD(t2.weekday,'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');

 

同一数据源,用field的时间和不用field的时间,差别不大
images

images

 

请我喝杯咖啡吧~

支付宝
微信