2016-12-16 3 views
0
SELECT * FROM salers WHERE comm IN (0.12, 0,13, 0.15); 

Запрос возвращает пустой набор, в то время как любые другие запросы возвращают значения. Где я могу сделать ошибку здесь?IN mysql с дробными значениями

+1

что тип данных 'comm' столбца? –

+1

Typo? Вы хотите запятую между 0 и 13? – jarlh

+0

Значение столбца столбца «comm» и тип данных – Mansoor

ответ

0

Ваша ошибка состоит в: 0,13

Изменить на:

SELECT * FROM salers WHERE comm IN (0.12, 0.13, 0.15); 
2

значения "Дробные" представлены либо в виде значений с фиксированной точкой (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 
+0

Изменено значение до десятичного и INработало. Спасибо всем. Ответы на ценности были действительно ценными. –

Смежные вопросы