Si un precio en una fila es 38.03
, entonces las siguientes restricciones de búsqueda deberían devolver la fila que contiene el resultado.MySQL mayor o igual que el operador está ignorando su obligación o igual a
WHERE price >= '38.02' AND price <= '38.03'
(Esto funciona)
WHERE price >= '20' AND price <= '100'
(Esto funciona)
WHERE price >= '38.03' AND price <= '38.03'
(Esto no funciona)
WHERE price >= '38.03' AND price <= '100'
(Esto no funciona)
WHERE price >= '38.03'
(Esto no tiene no funciona)
WHERE price <= '38.03'
(Esto funciona)
El precio se almacena como un flotante en la base de datos.
Así que, básicamente, <=
está trabajando, mientras que >=
no lo está. ¿Hay alguna razón por la que podría ser?
¿Por qué necesita encerrar el valor entre comillas simples? – BoltClock
¿No es esta una variación del problema clásico de comparación de coma flotante? ... Olvidé el nombre ... –
Puede ser demasiado tarde ahora, pero los precios (y el dinero) siempre deben almacenarse como tipo DECIMAL, nunca flotan. http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html – msw