0

私が使用しているクエリは次のとおりです。

SELECT * FROM inventory WHERE status='live' and price<='50' ORDER BY id DESC;

50ドル未満のすべてのアイテムを表示しています。しかし、100ドルを超えるすべてのアイテムも表示されますか? この問題は、これらの価格が 3 桁になっていることと関係があると思います。言及すべきもう1つのことは、価格には価格の後に.00も含まれていることです.

ポインタはありますか?

4

2 に答える 2

1

問題は、引用符で 50 を持っていることだと思います。MySql はおそらく文字列のように扱っています。

... AND price <= 50 ORDER BY ....
于 2013-03-13T19:37:21.150 に答える
0

price 列のデータ型が "CHAR" (文字列) の場合、"100" と "49999" はどちらも <= "50" です。一方または両方のデータ型 (列と比較) を DECIMAL(10,2) または別の数値型に変更します。

于 2013-03-13T19:39:09.933 に答える