обновить таблицу mysql имя инициалы - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть пользовательская таблица со столбцом для имен, и я создал новый столбец только для инициалов имени.

Можно ли обновить это поле?

Там 600 пользователей.

Пример: таблица пользователей

name           |  initials  |
-----------------------------
Laisa Madonna  |   LM       |

Joseph Steph   |   JS       |

John W Bush    |   JB       |

как я могу это сделать?

пример:

SELECT
    SUBSTRING_INDEX(SUBSTRING_INDEX(nameFull, ' ', 1), ' ', -1)  AS firstName
    ,TRIM( SUBSTR(nameFull, LOCATE(' ', nameFull)) ) AS lastName
FROM
    user

Ответы [ 3 ]

0 голосов
/ 13 апреля 2020

Использовать сгенерированный столбец:

alter table user add initials varchar(2) generated always as
     ( concat(left(name), left(substring_index(name, ' ', -1), 1)) );
0 голосов
/ 13 апреля 2020

Если у вас есть столбец в таблице, используйте этот оператор обновления:

update users
set initials = concat(
  left(name, 1), 
  left(substring_index(name, ' ', -1), 1)  
);

См. demo . Результаты:

| name          | initials |
| ------------- | -------- |
| Laisa Madonna | LM       |
| Joseph Steph  | JS       |
| John W Bush   | JB       |
0 голосов
/ 13 апреля 2020

Вы можете попробовать это:

RENAME TABLE old_table TO new_table;
OR
ALTER TABLE old_table RENAME new_table;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...