1

私は日付のあるテーブルを持っています(実際には、この形式の文字列時間です: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行目の「WHEREtable2_col=11」の近くで構文エラーをチェックするように求められます。

ORDER BY STR_TO_DATE(detail、'%Y-%b')DESCを削除すると、すべて正常に機能します。だから私はエラーがstr_to_dateから来ていると思いますか?私のコードの何が問題になっていますか?ありがとう

4

1 に答える 1

2

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 
;
于 2012-11-22T18:28:50.087 に答える