Float числа в Mysql и их выборка, ВОПРОС

D
На сайте с 20.09.2010
Offline
175
621

Столбец price в таблице имеет тип FLOAT

SELECT DISTINCT (price) FROM `material` WHERE 1 показывает:

44

20.31

23.44

26.88

39.38

45.62

50.31

1

Необходимо выбрать из таблицы минимальную цену. Пишу запрос:

SELECT min( price ) AS price FROM material WHERE 1

Результат - 44

КАК такое может быть?

GoRSS
На сайте с 29.07.2013
Offline
138
#1

SELECT id,price FROM material ORDER BY price ASC LIMIT 1

https://commersoft.ru - софт: Google Indexing [индексация в Гугле по API] - Webcontrol [мониторинг сайтов и доменов]
tommy-gung
На сайте с 22.11.2006
Offline
287
#2
Здесь не могла быть ваша реклама
Оптимизайка
На сайте с 11.03.2012
Offline
396
#3

Никогда не храните деньги в числах с плавающей запятой. Только в целых. Или в копейках или специальный тип в БД используйте, decimal(15,2):

The DECIMAL and NUMERIC types store exact numeric data values. These types are used when it is important to preserve exact precision, for example with monetary data.
⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий