Как изменить структуру поля имени в mysql - PullRequest
0 голосов
/ 25 июня 2010

У меня следующая проблема.

Моя таблица, скажем, tab1, имеет столбец name в следующем виде: «LastName, FirstName». Я хочу сделать так, чтобы столбец стал "FirstName LastName".

Есть идеи, как это сделать? Обратите внимание, что запятая отсутствует, но я думаю, что ее легко удалить, когда я пойму, как на самом деле перевернуть имя и фамилию.

Любая помощь будет оценена.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 25 июня 2010
  • Было бы лучше разделить столбец имени на два поля: FirstName и LastName , чтобы их можно было отформатировать любым способом и при этом выполнить сортировкупо фамилии.
  • Используйте substring и substring_index, чтобы найти запятые и разделить их.См. руководство .
1 голос
/ 25 июня 2010

замените @ ИМЯ своим реальным значением:

SELECT TRIM(SUBSTR(@NAME, LOCATE(",", @NAME) + 1)) AS prename, TRIM(SUBSTR(@NAME, 1, LOCATE(",", @NAME) - 1)) AS surename

Это позволит извлечь часть имени и верного имени, теперь вы можете вставлять / изменять данные по своему усмотрению.

0 голосов
/ 13 июня 2017
UPDATE table SET name2=CONCAT (TRIM(SUBSTR(name, LOCATE(",", name) + 1)), ' ', TRIM(SUBSTR(name, 1, LOCATE(",", name) - 1)))
0 голосов
/ 25 июня 2010

Не ответ на ваш вопрос, но я бы не стал этого делать ни при каких обстоятельствах. У вас не будет шансов достоверно отличить фамилию и имя. Рассмотрим следующие имена:

Bridget St John
Boutros Boutros Ghali
Karl-Theodor Maria Nikolaus Freiherr von und zu Guttenberg

Я рекомендую хранить отдельные столбцы "фамилия" и "имя". Вы можете объединить их по своему усмотрению, когда будете делать вывод.

...