Столкнулся с тем, что у одного проекта поле с количеством товара было vchar. И, в один прекрасный момент, в него начали выгружать количество с двумя нулями в конце ",00". Как результат много где отвалились проверки и эти нули вылезли в карточке товара, на главной, в категории... проще сказать где они не вылезли.
Решение кажется простым, просто сменить тип с vchar на int, но MySql не даст это сделать, т.к. не сможет привести типы.
Решение:
Делам копию поля (на всякий пожарный)
Используем функцию REPLACE для удаления ",00"
Меняем тип, теперь это можно сделать.
ALTER TABLE `b_iblock_element_prop_s1` ADD `_TMP` varchar(250) COLLATE 'utf8_unicode_ci' NULL; UPDATE b_iblock_element_prop_s1 SET _TMP = PROPERTY_21; UPDATE b_iblock_element_prop_s1 SET PROPERTY_21 = REPLACE(PROPERTY_21, ',00', ''); ALTER TABLE `b_iblock_element_prop_s1` CHANGE `PROPERTY_21` `PROPERTY_21` int NULL AFTER `PROPERTY_20`;