Введите числовой 0 перед текущим значением в столбце Mysql DB - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть база данных MySQL. Информация, которую я загрузил для заполнения базы данных, содержится в файле CSV.Файл CSV имеет числовое значение, например 9875637892. Поскольку у меня в CSV более 2000 строк, ведущий 0 отсутствует.Я не могу по понятным причинам пройти 2000 и более записей, чтобы добавить начальный ноль. Мне нужно, чтобы в каждой строке было 09875637892.

Есть ли способ запустить строку SQL, чтобы добавить в SQL 0 перед 9875637892?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

L (-eft) PAD кажется подходящим решением:

-- simple test:
SELECT LPAD('9875637892', 11, '0');

===========================
Number of Records: 1
===========================
LPAD('9875637892', 11, '0')
---------------------------
09875637892

-- update table:
UPDATE yourtable
SET yourcolumn = LPAD(yourcolumn, 11, '0');

(при условии, что 11 цифр максимум / для заполнения)

0 голосов
/ 03 февраля 2019

Числовые значения не имеют начальных нулей.Если значение в CSV-файле имеет значение, измените тип данных на строку и повторно импортируйте данные.

Если это невозможно, внесите изменения на месте:

alter table t modify col varchar(255);

update t
    set col = concat('0', col);

Если значение уже является строкой, вы можете просто запустить update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...