2012-11-22 70 views
1

我有一個表與日期(實際上他們是在這種格式的字符串時間:2004年3月)。我想在此基礎上日期排名紀錄,所以我有以下查詢:mysql order by str_to_date does not work

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; 

但此查詢不工作,它要求我檢查語法犯錯附近「WHERE table2_col = 11」 5行

如果我刪除ORDER BY STR_TO_DATE(細節,'%Y-%b')DESC,那麼一切工作正常。所以我認爲錯誤來自str_to_date?我的代碼有什麼問題? 感謝

+1

'WHERE'語句之前需要'ORDER BY'語句去(你的語法錯誤) – BenOfTheNorth

回答

2

通過應該來的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 
; 
+0

嗨,謝謝!有用! – Mario

+0

@Mario:你非常歡迎......乾杯 –