MySQLでWHERE句とORDER BY句を使ってエラーが出てしまう時の対処法

MySQLでWHERE句とORDER BY句を使ってエラーが出た時の対処法を紹介します。

 

コードの記述ミス

エラーが出るということはどこかおかしい部分があるわけですが、例えば以下のように記述していないでしょうか。

SELECT * from history ORDER BY date DESC WHERE value="0"

dateを基準にソートして降順で取得し、value=0の条件に合致するデータだけを取得するコードですが、これは記述ミスがあります。

以下のようなエラーが出るはずです。

#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘WHERE value=”0″ LIMIT 0, 30’ at line 1

 

error in your SQLと書いてあるだけあって記述ミスですね。

 

正しいコード

正しくは以下のようなコードになります。

SELECT * from history WHERE value="0" ORDER BY date DESC

昇順・降順を決めるASC/DESCはSQL文の最後に記述します。

WHERE句→ORDER BY句→ASC/DESCの順で指定するようにしましょう。

 

記述の仕方は正しく覚えていかないとつまらないエラーで時間を使うことになりますからね。

間違って覚えないように注意してください。