Wenn ein Preis in einer Zeile 38.03
ist, dann sollten die folgenden Sucheinschränkungen alle die Zeile zurückgeben, die das Ergebnis enthält.MySQL größer oder gleich Operator ignoriert seine oder gleich
WHERE price >= '38.02' AND price <= '38.03'
(Dies funktioniert)
WHERE price >= '20' AND price <= '100'
(Dies funktioniert)
WHERE price >= '38.03' AND price <= '38.03'
(Das funktioniert nicht)
WHERE price >= '38.03' AND price <= '100'
(Das funktioniert nicht)
WHERE price >= '38.03'
(Diese doesn 't arbeiten)
WHERE price <= '38.03'
(Dies funktioniert)
Der Preis wird als Float im DB gespeichert.
Also im Grunde funktioniert <=
funktioniert, während >=
nicht ist. Gibt es einen Grund, warum das sein könnte?
Warum müssen Sie den Wert in einfache Anführungszeichen setzen? – BoltClock
Ist das nicht eine Variation des klassischen Gleitkomma-Vergleichsproblems? ... Ich vergesse den Namen ... –
Es mag jetzt zu spät sein, aber Preise (und Geld) sollten immer als DECIMAL-Typ gespeichert werden, niemals schwebt. http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html – msw