2

我如何按日期名称在mysql中排序,即:星期日,星期一,星期二,星期三等等

SELECT 
    DAYNAME(dl.bookingDate) AS dayName, COUNT(dg.idDiary) AS totalBooked
FROM
    diary_list dl, diary_group dg
WHERE
    dl.idDiary = dg.idDiary AND dg.idService != 0 AND dl.status = 3
GROUP BY 
    dayName
ORDER BY 
    dayName ???
4

2 回答 2

7

您需要将该功能添加DAYOFWEEK到您的GROUP BYand ORDER BY

GROUP BY DAYOFWEEK(dl.bookingDate)
ORDER BY DAYOFWEEK(dl.bookingDate)

您可能还想研究使用显式 ANSI 标准JOIN语法。

SELECT 
    DAYNAME(dl.bookingDate) AS dayName, COUNT(dg.idDiary) AS totalBooked
FROM
    diary_list dl
JOIN diary_group dg
    ON dl.idDiary = dg.idDiary
WHERE
    dg.idService != 0 AND dl.status = 3
GROUP BY 
    DAYOFWEEK(dl.bookingDate)
ORDER BY 
    DAYOFWEEK(dl.bookingDate)
于 2013-07-24T13:33:38.763 回答
2

您可以制定自己的订单标准:

ORDER BY FIELD(DAY , '3', '4', '5', '6', '7','1', '2')

在你的情况下:

ORDER BY FIELD(DAY , '7','1', '2', '3', '4', '5', '6')

阅读本文了解更多信息

于 2013-07-24T13:35:53.773 回答