У меня есть столбец NAME
, и данные хранятся в базе данных MySql следующим образом:
Доу, Джон П.
Я хотел бы разбить его на FNAME
LNAME
MNAME
и FULLNAME
.
Если я не хочу вмешиваться в таблицу SQL, должен ли я создать представление?
Я знаю, как исправить это в PHP с помощью функции, но я бы предпочел, чтобы обработка выполнялась на сервере базы данных, а не на сервере приложений.
Это то, что у меня есть до сих пор. Я думаю, мне нужен составной запрос или что-то подобное.
SELECT Name
, SUBSTRING_INDEX(Name,',',-1) As FNAME
, SUBSTRING_INDEX(Name,',',1) As LNAME
, SUBSTRING_INDEX(Name,' ',1) As MNAME
FROM people;
У меня возникли проблемы с получением отчества и выполнением того, что, по моему мнению, должно быть функцией CONCAT
, чтобы получить FULLNAME
.
Было бы здорово, если бы был способ (может быть, условный) для обработки имен в базе данных, у которых нет отчества. (т.е. ДОЭ, ДЖОН).