SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.06.2017 08:23:19

Dastan
Участник
Зарегистрирован: 27.06.2017
Сообщений: 3

Обновление таблички

Здравствуйте! Есть табличка:

CREATE TABLE consumer (id bigint NOT NULL, name character varying(255));

INSERT INTO consumer (id, name)
VALUES (2734, Сидоров А В),
VALUES (6208, Петров С);

Подскажите как можно обновить данные на:
Сидоров А.В.
Петров С.

т.е. нужно заменить пробел на точку и в конце тоже поставить точку.

Неактивен

 

#2 27.06.2017 08:26:25

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Обновление таблички

UPDATE `consumer` SET `name` = 'Сидоров А. В.' WHERE id = 2734;


Второй - по образу и подобию.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 27.06.2017 09:13:00

Dastan
Участник
Зарегистрирован: 27.06.2017
Сообщений: 3

Re: Обновление таблички

deadka написал:

UPDATE `consumer` SET `name` = 'Сидоров А. В.' WHERE id = 2734;


Второй - по образу и подобию.

Да так можно, но строк > 200 000. Как обновить одним запросов всё?!

к примеру есть запрос:

UPDATE consumer
SET name = CONCAT(name,  '.') WHERE id = 2734

Решение: Сидоров А В.

Но нужно Сидоров А.В.

Неактивен

 

#4 27.06.2017 09:16:59

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Обновление таблички

Ну если Вы точно представляете себе алгоритм где и как надо ставить точку - то можно либо написать простенькую хранимую процедуру либо
поиграться со строковыми функциями
https://dev.mysql.com/doc/refman/5.7/en … tions.html
в помощь
https://dev.mysql.com/doc/refman/5.7/en … ion_locate
https://dev.mysql.com/doc/refman/5.7/en … on_replace

Как понимаю, нужно найти второй пробел и вставить точку перед ним.
Но проверьте сперва, все ли строки у Вас удовлетворяют такому паттерну!


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 30.06.2017 13:40:25

Dastan
Участник
Зарегистрирован: 27.06.2017
Сообщений: 3

Re: Обновление таблички

deadka написал:

Ну если Вы точно представляете себе алгоритм где и как надо ставить точку - то можно либо написать простенькую хранимую процедуру либо
поиграться со строковыми функциями
https://dev.mysql.com/doc/refman/5.7/en … tions.html
в помощь
https://dev.mysql.com/doc/refman/5.7/en … ion_locate
https://dev.mysql.com/doc/refman/5.7/en … on_replace

Как понимаю, нужно найти второй пробел и вставить точку перед ним.
Но проверьте сперва, все ли строки у Вас удовлетворяют такому паттерну!

Спасибо! поковыряюсь!
Просто подумал, может кто знает и подскажет побыстрейsmile

Неактивен

 

#6 30.06.2017 13:51:34

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Обновление таблички

Вряд ли.
А на самом деле проще вытащить это дело на клиент и тем же php/python/c++ и иже, изменить там и засунуть обратно update'ами.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson