Как поменять одно слово - PullRequest
0 голосов
/ 11 марта 2019

В моей базе данных MySQL у меня есть несколько строк изображений с тегами, и мне нужно изменить один из тегов для всех изображений.

Теги выглядят так tag1,tag2,tag3 в одном ряду.

Как я могу выделить, чтобы я мог изменить только "tag2"? Например, «tag2» превращается в «tag4», в то время как tag1 и tag3 не должны меняться вообще.

Я никак не могу разобраться с этим.

есть 1000 изображений, и я могу изменить только 1 за раз, но мне нужно изменить это для всех 1000 изображений в одном запросе mysql, если это возможно.

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Примите во внимание, что tag2 может быть частью другого тега, и во избежание ненужных обновлений проверьте, действительно ли tag2 является частью столбца:

update tablename
set col = trim(both ',' from replace(concat(',', col, ','), ',tag2,', ',tag4,'))
where concat(',', col, ',') like '%,tag2,%' 

См. Демоверсию

0 голосов
/ 11 марта 2019
UPDATE table SET tags = REPLACE(tags, 'tag2', 'tag4')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...