SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 16.11.2021 17:20:28

Федосей
Участник
Зарегистрирован: 16.11.2021
Сообщений: 13

Во всей таблице вырезать (удалить) из каждой строки лишнюю подстроку

Структура таблицы.
ID int, NAME varchar(200)

Задача.
В поле NAME хранятся отличные друг от друга текстовые (буквенные) строки.
Но в каждой из них содержится одна и та же подстрока.
Её надо удалить, из каждой строки во всей таблице.

Неактивен

 

#2 16.11.2021 18:04:47

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

Re: Во всей таблице вырезать (удалить) из каждой строки лишнюю подстроку


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

Неактивен

 

#3 16.11.2021 18:09:40

Федосей
Участник
Зарегистрирован: 16.11.2021
Сообщений: 13

Re: Во всей таблице вырезать (удалить) из каждой строки лишнюю подстроку

deadka написал:

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_replace
в помощь

Спасибо. На странице по вашей ссылке показано, как удалить подстроку при выдаче всех строк.
Однако дополнительно надо в той же таблице сохранить новые строки без подстроки в своих, в тех же ячейках.

Неактивен

 

#4 16.11.2021 18:21:01

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

Re: Во всей таблице вырезать (удалить) из каждой строки лишнюю подстроку

Приведите немного тестовых данных (чтобы иллюстрировали нужно)- и результат, который хотите получить в результате удаления подстроки.


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

Неактивен

 

#5 29.11.2021 11:48:35

Федосей
Участник
Зарегистрирован: 16.11.2021
Сообщений: 13

Re: Во всей таблице вырезать (удалить) из каждой строки лишнюю подстроку

до удаления подстроки " (радуга)" из таблицы в БД
ID int     NAME varchar(200)
1    красный (радуга)
2    оранжевый (радуга)
3    жёлтый (радуга)
4    зелёный (радуга)
5    голубой (радуга)
6    синий (радуга)
7    фиолетовый (радуга)
   
там же, после удаления   
ID int     NAME varchar(200)
1    красный
2    оранжевый
3    жёлтый
4    зелёный
5    голубой
6    синий
7    фиолетовый

Отредактированно Федосей (29.11.2021 11:49:15)

Неактивен

 

#6 29.11.2021 11:49:05

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

Re: Во всей таблице вырезать (удалить) из каждой строки лишнюю подстроку

Попробуйте

update t set `NAME` = replace(`NAME`, ' (радуга)', '');


Только бэкап с таблицы снимите или на кошках потренируйтесь сперва :-).


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

Неактивен

 

Board footer

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