我目前遇到的问题是使用date_format的数据列对结果进行排序.
我有以下日期:
当我执行查询时:
SELECT date FROM myTable ORDER date DESC
Run Code Online (Sandbox Code Playgroud)
日期按正确的顺序排序
当我执行查询
SELECT DATE_FORMAT(date, '%d-%m-%Y') as `date` ORDER BY date
Run Code Online (Sandbox Code Playgroud)
日期现在的顺序错误
我也试过运行查询SELECT DATE_FORMAT(日期,'%d-%m-%Y')作为dateORDER BY DATE_FORMAT(日期,'%d-%m-%Y'),但没有任何区别.
如何才能按正确顺序排序.
ype*_*eᵀᴹ 10
问题是您使用别名覆盖列名称.
选择其他别名:
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') as date_formatted
FROM myTable
ORDER BY `date` DESC
Run Code Online (Sandbox Code Playgroud)
只需为ORDER BY子句中的列指定表名:
SELECT DATE_FORMAT(date, '%d-%m-%Y') as `date`
FROM myTable
ORDER BY myTable.`date` DESC -- <<<<<<
Run Code Online (Sandbox Code Playgroud)
在这种情况下,mysql知道您希望按表列排序,而不是按照您在SELECT部件中评估的表达式排序
| 归档时间: |
|
| 查看次数: |
7862 次 |
| 最近记录: |