Как вы можете заставить mysql понимать неанглийские десятичные точки в полях integer / float?
setLocale(LC_ALL, 'da_DK.ISO-8859-1');
например:
0,25 will be inserted as 0 0.25 will be inserted as 0.25
Одной из причин, по которым вы не можете сделать этого, является то, что запятая используется для разделения значений полей в операторах INSERT
.
INSERT INTO a(b,c) VALUES (3,4,5)
будет неоднозначной.
Должно ли это приводить к b=3.4 , c=5
или b=3 , c=4.5
?
На номера не влияют языковые настройки (то же самое в SQL Server тоже).
Таким образом, вы должны отправить как "0.25"
Самый простой способ, по-моему, был бы использовать оболочку для вашего объекта mysql, которая установит локаль в en_US.utf8 перед вашим запросом и после того, как запрос вернет ее обратно в da_DK.ISO-8859-1.
Похоже, это делает противоположное тому, что вы ищете.
Возможно, вы захотите попробовать что-то вроде REPLACE ('3,1415926', ',', '.').