データベースのFLOAT列に、検索したい値がいくつかあります。
不思議なことに、これを実行すると2.5の値が返されます。
SELECT * from `prices` WHERE `price` = 2.5
しかし、4.8で検索しても、次のように比較する前に列をトリミングしない限り、何も返されません。
SELECT * from `prices` WHERE trim(`price`) = 4.8
これの原因は誰でも知っているので、FLOATフィールドなので、トリミングする必要のある先頭または末尾のスペースはないはずだと思いました。4.8という数字は特別なものではないと思いますが、それでも興味をそそられます。
データベースを参照すると、先頭または末尾の文字がないプレーンな4.8として表示されます。
なぜこれが起こるのか、私は少し困惑しています。