0

したがって、「1.00」を検索するには、1、1.0、1.00、1.000、11、11.00 などで一致を見つける必要があります。

したがって、私が求めているのは単純な検索ですが、ユーザーがデータベースに追加する場合としない場合があるため、末尾の小数点以下はオプションです。

現在、私はこれを持っていますが、明らかにうまくいきません

SELECT * 
FROM `prices` 
WHERE `price` = '%1.00';

次のようにするとうまくいきますが、もっと簡潔にしたいと思います。

SELECT * 
FROM `prices` 
WHERE `price` = '1.00'
OR `price` = '1.0'
OR `price` = '1'; 
# NOTE THE LACK OF DECIMAL PLACE
4

2 に答える 2

1

あなたが本当にしようとしているのは、これらの文字列を数値として比較することですよね? それが本当なら、price足し算を使って数値に変換します。

これを試して:

SELECT *
FROM `prices`
WHERE (0 + `price`) = 1;

小数の場合は、次のようにできます。

SELECT *
FROM `prices`
WHERE ROUND( 0 + `price` , 2 ) = 0.99;
于 2012-11-20T01:55:54.590 に答える
0

次のように、TRIM() 関数を使用してこれを達成できるようです。

SELECT TRIM(TRAILING '0' FROM `price`) as trimmed
FROM `prices`
WHERE trimmed = '1'

https://stackoverflow.com/a/7968606/1613391

于 2012-11-20T01:55:42.367 に答える