Объединение нескольких текстовых полей в одно в MySQL - PullRequest
3 голосов
/ 17 марта 2011

У меня есть список пользователей в таблице с отдельными полями для имени, отчества и фамилии. По разным причинам мне нужно изменить структуру базы данных так, чтобы было только одно поле «имя». Каков наилучший / самый простой способ перенести мои данные из 3 старых полей в одно новое поле?

Ответы [ 4 ]

5 голосов
/ 17 марта 2011

Сначала добавьте столбец, который длиннее всех трех вместе взятых.

alter table tbl add fullname varchar(100);

Затем обновите его, указав concat старых столбцов.

update tbl set fullname = concat(lastname, ', ', firstname, ' ', middlename)

(в итоге получается «Керк, Джон М»)

Затем удалите старые столбцы

alter table tbl drop column firstname;
alter table tbl drop column middlename;
alter table tbl drop column lastname;
1 голос
/ 17 марта 2011
UPDATE Users SET FullName = FirstName + ' ' + MiddleName + ' ' + LastName
0 голосов
/ 17 марта 2011

Конкатенация с использованием «выражение + выражение» Выражения должны быть ненулевыми.

0 голосов
/ 17 марта 2011
UPDATE Users SET Fullname = CONCAT(Firstname, " ", MiddleName, " ", LastName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...