Добавление ведущего нуля к некоторым значениям в столбце в MySQL
У меня есть CSV-файл, отправленный мне в CSV. Области интереса составляет 8 цифр. Некоторые из них начинались с 0. Поле было отправлено числовое. Итак, теперь я опустил некоторые ведущие нули.
Я уже преобразовал поле в varchar. Теперь мне нужно сделать это:
у меня есть это:
12345678
1234567
мне нужно вот что:
12345678
01234567
3 ответа:
возможно:
select lpad(column, 8, 0) from table;
редактировать в ответ на вопрос от mylesg, в комментариях ниже:
ОК, кажется, внести изменения в запрос - но как я могу сделать его придерживаться (изменить его) постоянно в таблице? Я попробовал обновление вместо SELECT
Я предполагаю, что вы использовали запрос, аналогичный:
UPDATE table SET columnName=lpad(nums,8,0);
если это было успешно, но значения в таблице по-прежнему без ведущих нулей, то Я бы предложил вам, вероятно, установить столбец как числовой тип? Если это так, то вам нужно будет изменить таблицу так, чтобы столбец имел тип text/varchar () для сохранения ведущих нулей:
первый:
ALTER TABLE `table` CHANGE `numberColumn` `numberColumn` CHAR(8);
во-вторых, запустите обновление:
UPDATE table SET `numberColumn`=LPAD(`numberColum`, 8, '0');
Это должно, следовательно, сохранить начальные нули; нижняя сторона заключается в том, что столбец больше не является строго числовым типом; поэтому вам, возможно, придется применять более строгую проверку (в зависимости от вашего use-case), чтобы убедиться, что не числительные не вводятся в этот столбец.
ссылки:
у меня была аналогичная проблема при импорте данных номера телефона из excel в базу данных mysql. Так что простой трюк без необходимости определять длину телефонного номера (потому что длина телефонных номеров варьировалась в моих данных):
UPDATE table SET phone_num = concat('0', phone_num)
Я только что уступил 0 перед
phone_num
.