Подтвердить что ты не робот

Добавление начального нуля к некоторым значениям в столбце

У меня есть файл csv, отправленный мне в csv. Интересующая область - 8 цифр. Некоторые из них начинались с 0. Поле было отправлено числовым. Итак, теперь я сбросил несколько ведущих нулей.

Я уже преобразовал поле в varchar. Теперь я должен сделать это:

У меня есть это сейчас:

12345678
1234567

Мне нужно иметь это:

12345678
01234567

Я использую mysql.

Спасибо

4b9b3361

Ответ 1

Измените поле на числовое и используйте ZEROFILL, чтобы сохранить нули

или

использовать LPAD()

SELECT LPAD('1234567', 8, '0');

Ответ 2

Возможно:

select lpad(column, 8, 0) from table;

Отредактировано в ответ на вопрос от mylesg в комментариях ниже:

ok, похоже, делает изменение в запросе, но как заставить его вставлять (изменять его) постоянно в таблице? Я попробовал UPDATE вместо 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');

Таким образом, это должно сохранить начальные нули; нижняя сторона - это то, что столбец больше не является числовым типом; поэтому вам может потребоваться более строгая проверка (в зависимости от вашего случая использования), чтобы гарантировать, что в этот столбец не будут введены цифры.

Литература: