SELECT * FROM salers WHERE comm IN (0.12, 0,13, 0.15);
Запрос возвращает пустой набор, в то время как любые другие запросы возвращают значения. Где я могу сделать ошибку здесь?IN mysql с дробными значениями
SELECT * FROM salers WHERE comm IN (0.12, 0,13, 0.15);
Запрос возвращает пустой набор, в то время как любые другие запросы возвращают значения. Где я могу сделать ошибку здесь?IN mysql с дробными значениями
Ваша ошибка состоит в: 0,13
Изменить на:
SELECT * FROM salers WHERE comm IN (0.12, 0.13, 0.15);
значения "Дробные" представлены либо в виде значений с фиксированной точкой (decimal
) или в виде значений с плавающей точкой. Последние очень неприятны при использовании с операциями равенства.
Таким образом, в дополнение к ошибке с запятой, это может быть опасно, если comm
is double
или float
. Вы можете обнаружить, что это работает лучше:
where cast(comm as decimal(10, 2)) in (0.12, 0.13, 0.15)
Или, предпочтительно, вы можете посмотреть на диапазон:
where comm > 0.11 and comm < 0.16
Изменено значение до десятичного и INработало. Спасибо всем. Ответы на ценности были действительно ценными. –
что тип данных 'comm' столбца? –
Typo? Вы хотите запятую между 0 и 13? – jarlh
Значение столбца столбца «comm» и тип данных – Mansoor