我有一个日期表(实际上它们是这种格式的字符串时间:2004 年 3 月)。我想根据这个日期对记录进行排名,所以我有以下查询:
SELECT *,STR_TO_DATE(detail,'%Y-%b')
FROM table2 JOIN user_table
ON table2.user_id = user_table.id
ORDER BY STR_TO_DATE(detail,'%Y-%b') DESC
WHERE table2_col = 11;
但是这个查询不起作用,它要求我检查第 5 行 'WHERE table2_col = 11' 附近的语法错误
如果我删除 ORDER BY STR_TO_DATE(detail,'%Y-%b') DESC ,那么一切正常。所以我认为错误来自 str_to_date?我的代码有什么问题? 谢谢
最佳答案
order by 应该在where子句之后
试试这个:
SELECT *,STR_TO_DATE(detail,'%Y-%b')
FROM table2 JOIN user_table
ON table2.user_id = user_table.id
WHERE table2_col = 11
ORDER BY STR_TO_DATE(detail,'%Y-%b') DESC
;
关于按 str_to_date 排序的 mysql 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518310/