Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте! Есть табличка:
CREATE TABLE consumer (id bigint NOT NULL, name character varying(255));
INSERT INTO consumer (id, name)
VALUES (2734, Сидоров А В),
VALUES (6208, Петров С);
Подскажите как можно обновить данные на:
Сидоров А.В.
Петров С.
т.е. нужно заменить пробел на точку и в конце тоже поставить точку.
Неактивен
Неактивен
deadka написал:
UPDATE `consumer` SET `name` = 'Сидоров А. В.' WHERE id = 2734;
Второй - по образу и подобию.
Да так можно, но строк > 200 000. Как обновить одним запросов всё?!
к примеру есть запрос:
UPDATE consumer
SET name = CONCAT(name, '.') WHERE id = 2734
Решение: Сидоров А В.
Но нужно Сидоров А.В.
Неактивен
Ну если Вы точно представляете себе алгоритм где и как надо ставить точку - то можно либо написать простенькую хранимую процедуру либо
поиграться со строковыми функциями
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
Как понимаю, нужно найти второй пробел и вставить точку перед ним.
Но проверьте сперва, все ли строки у Вас удовлетворяют такому паттерну!
Неактивен
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
Как понимаю, нужно найти второй пробел и вставить точку перед ним.
Но проверьте сперва, все ли строки у Вас удовлетворяют такому паттерну!
Спасибо! поковыряюсь!
Просто подумал, может кто знает и подскажет побыстрей
Неактивен
Вряд ли.
А на самом деле проще вытащить это дело на клиент и тем же php/python/c++ и иже, изменить там и засунуть обратно update'ами.
Неактивен