@melnikov_m

Как изменить значение поля в нескольких строках одним запросом SQL?

Есть поле 'name' в таблице 'geo' в котором хранятся вот такие названия..
Черкесский городской округ
Карачаевский городской округ
Чебоксарский городской округ
Алатырский городской округ
и т. д.

Можно ли одним запросом, например с помощью REGEXP, изменить их значения на..
Городской округ - Черкесский
Городской округ - Карачаевский
Городской округ - Чебоксарский
Городской округ - Алатырский

P.S. : MySQL -5.5.38
  • Вопрос задан
  • 4458 просмотров
Решения вопроса 1
Diyahon
@Diyahon
Пишу код за еду
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А зачем тут регулярка? LIKE, SUBSTRING, CONCAT
Ответ написан
@whats
SELECT concat('Городской округ - ', SUBSTRING_INDEX('Алатырский городской округ', 'городской округ', 1))
Ответ написан
@melnikov_m Автор вопроса
Прошу прощения, что не уточнил, там могут быть и такие строки "Магнитогорский городской округ - город Магнитогорск" соответственно нужно преобразовать в - "Городской округ - Магнитогорский - город Магнитогорск"

Вроде вот так должно заработать (в 2 запроса )
UPDATE `geo` SET `name` = CONCAT('Городской округ - ', `name`) WHERE `name` like '% городской округ%'
UPDATE `geo` SET `name` = REPLACE(name, ' городской округ', '')

Всем спасибо за советы, направили в нужное русло и получилось ))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы