interlude

プログラミングや私的なこと

MySQLでカラム名にcurrent_timeを使ってはいけない

表題のままなんだけど、where句で'current_time'というカラムに対して比較演算子を用いて抽出しようとしたけど期待される結果が出なくておかしいな?と思って調べたところcurrent_timeは予約語なんですね。。本来はカラム名に使わないのがベターなんですが、使用してしまった場合はSQL文書く際にバッククォートで囲うとエスケープしてくれます。

SELECT
*
FROM
test_table
WHERE
current_time > 0

SELECT
*
FROM
test_table
WHERE
`current_time` > 0

予約後は以下に一覧があるのでご参考まで。intervalとか危ないですね。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.3 予約語