mysqlでfloatを使う際の注意点

消費税ネタ
mysqlでfloat型のカラムに1.05という値が入っていたんだけどselectしてもヒットしない。

select * from table where col = 1.05;
-- Empty set (0.00 sec)

どうやらfloat型の場合、単純に比較が出来ないらしい。で、とりあえず1.05のデータを抽出したかったので、仕方なく以下のようにやったらひとまず抽出は出来た。

select * from table where col > 1.04 and col < 1.06;