我目前遇到的问题是使用date_format的数据列对结果进行排序。
我有以下日期:
执行查询时:
SELECT date FROM myTable ORDER date DESC
日期按正确顺序排列
执行查询时
SELECT DATE_FORMAT(date, '%d-%m-%Y') as `date` ORDER BY date
日期现在的顺序错误
我也尝试过运行查询
选择DATE_FORMAT(日期,'%d-%m-%Y')为date
ORDER BY DATE_FORMAT(日期,'%d-%m-%Y'),但没有任何区别。
如何才能按正确顺序排序。
答案 0 :(得分:10)
问题是您使用别名覆盖列名称。
选择其他别名:
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') as date_formatted
FROM myTable
ORDER BY `date` DESC
答案 1 :(得分:5)
只需在ORDER BY
子句中指定列的表名:
SELECT DATE_FORMAT(date, '%d-%m-%Y') as `date`
FROM myTable
ORDER BY myTable.`date` DESC -- <<<<<<
在这种情况下,mysql知道你想按表列排序,而不是你在SELECT
部分评估的表达式