sql, не видит строки при условии со знаком =

При запросе SELECT * FROM base_stock_cloth_rol WHERE rol_count='39.8'

получаю ответ MySQL вернула пустой результат (т.е. ноль строк) Screanshort1

А при запросе

SELECT * FROM base_stock_cloth_rol WHERE rol_count>'39'

получаю в ответ уже не пустой запрос Отображение строк 0 - 16 Screanshort2

P.S. тип столбца rol_count - float
P.S.2 без ' ' тоже пробовал результат всё равно пустой


Ответы (1 шт):

Автор решения: Igor

В базе, скорее всего, хранится число только приблизительно равное 39.8. Если тип колонки - четырех-байтный float, число 39.8 просто не может быть выражено абсолютно точно этим типом данных. Вам придется компоновать условие вида:

... WHERE rol_count > 39.799 AND rol_count < 39.801

или

... WHERE ABS(rol_count - 39.8) < 0.001
→ Ссылка