Какой самый эффективный способ обрезать имена в столбце first_name и last_name до 1 символа? - PullRequest
0 голосов
/ 10 марта 2020

Какой самый эффективный способ обрезать имена в столбце first_name и last_name до 1 символа?

У меня есть база данных mysql, которую я хочу передать разработчику, но хочу частично очистить данные так, что две записи имен выпадают только до инициалов.

Я пытался изменить varchar до 1 символа, но mysql не позволяет мне усекать данные, он просто выдает ошибку. Я работаю с дампом базы данных, прежде чем передать его. Я хочу скрыть имена, не делая их одинаковыми.

Ответы [ 4 ]

1 голос
/ 10 марта 2020
update tablename set first_name=left(first_name, 1), last_name = left(last_name, 1)

Но, как упоминал Гордон Линофф, это может быть дорого, если в таблице много строк

0 голосов
/ 10 марта 2020

Вы можете использовать like при создании новой таблицы, чтобы у вас был тот же атрибут столбца и определения, что и у старой таблицы. Обязательно ознакомьтесь с руководством о поведении like при создании таблиц, особенно если вас интересует индексирование.

create table new_table like old_table;

insert into new_table

select left(first_name, 1) as first_name, left(last_name, 1) as last_name, ..-- rest of columns
from old_table;
0 голосов
/ 10 марта 2020

Почему бы вам не попробовать:

Update "you_table"
SET first_name = LEFT(first_name,1), 
last_name = LEFT(last_name,1);
0 голосов
/ 10 марта 2020

Обновление всех строк довольно дорого из-за необходимости регистрации. Вероятно, наиболее эффективным способом является создание новой таблицы:

create table for_developer as
    select left(first_name, 1) as first_name, left(last_name, 1) as last_name,
           . . . -- rest of columns
    from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...