Нет никакого семантического различия; тенденция в стандартах находится к использованию id
, а не name
. Однако существуют различия, которые могут привести предпочитать name
в некоторых случаях. Предложения спецификации HTML 4.01 следующие подсказки :
Использование id
или name
? Авторы должны рассмотреть следующие проблемы при решении, использовать ли id
или name
для имени привязки:
Преобразование в десятичное сработало для меня:
SELECT * FROM table WHERE CAST(price AS DECIMAL) = CAST(101.31 AS DECIMAL);
Тем не менее, вы можете в первую очередь подумать о том, чтобы просто сделать столбец price
DECIMAL. DECIMAL обычно считается лучшим типом для работы с денежными значениями.
Это не работает, потому что float по своей сути неточен. Фактическое значение, вероятно, похоже на «101.3100000000001». Вы можете сначала использовать ROUND (), чтобы округлить его до двух разрядов, или еще лучше использовать тип DECIMAL вместо float.
Никогда не используйте числа с плавающей запятой для денег.
Возможно, что-то вроде этого:
SELECT * FROM table WHERE ident='ident23' AND ABS(price - 101.31) < .01;
Это работает?
SELECT * , ROUND( price, 2 ) rounded
FROM table
WHERE ident = 'ident23'
HAVING rounded = 101.31