LIKE
float フィールドに対して一致する数値結果を返すために使用しています。小数点の左側が 4 桁を超えると、小数点の右側の検索項目に一致する値が返されないようです。状況を示す例を次に示します。
CREATE TABLE number_like_test (
num [FLOAT] NULL
)
INSERT INTO number_like_test (num) VALUES (1234.56)
INSERT INTO number_like_test (num) VALUES (3457.68)
INSERT INTO number_like_test (num) VALUES (13457.68)
INSERT INTO number_like_test (num) VALUES (1234.76)
INSERT INTO number_like_test (num) VALUES (23456.78)
SELECT num FROM number_like_test
WHERE num LIKE '%68%'
このクエリは、値が 12357.68 のレコードを返しませんが、値が 3457.68 のレコードを返します。また、68 の代わりに 78 を使用してクエリを実行しても 23456.78 レコードは返されませんが、76 を使用すると 1234.76 レコードが返されます。
では、質問に行きましょう: なぜ数値が大きいとこれらの結果が変化するのでしょうか? クエリを変更して期待される結果を得るにはどうすればよいですか?