2016-10-27 1 views
1

Предположим, у меня есть следующие данные MySQLMySQL заменяет целую строку на основе части строки?

  1. UserFiles/пользователь/JohnSmith/2013_Thanksgiving_Final.jpg
  2. UserFiles/пользователь/JaneJohnson/2013_Thanksgiving_Final.jpg
  3. UserFiles/пользователь/BobbyLee/2013_Thanksgiving_Final.jpg

Есть ли способ изменить его?

  1. globalfiles/2016_Thanksgiving_Final.jpg
  2. globalfiles/2016_Thanksgiving_Final.jpg
  3. globalfiles/2016_Thanksgiving_Final.jpg

Я думал сделать что-то вроде этого?

UPDATE user__attributes SET value = REPLACE(value, REGEXP '2013_Thanksgiving_Final', 'globalfiles/2016_Thanksgiving_Final.jpg') WHERE value LIKE '%2013_Thanksgiving_Final%'; 

Я думал, если я использовал REGEXP, она будет предназначаться всю строку, основанную от просто кусок его заменить? Хотя я сделал ошибку, пытаясь это сделать.

Спасибо!

+0

вы хотите удалить часть «yserFiles/пользователь/JohnSmith/и Repalce с globlfiles для всех пользователей, где есть 2013_Thanksgiving_Final.jpg? – scaisEdge

ответ

1

Если вы хотите добавить globalfiles в существующие файлы назвать Вам не нужно регулярное выражение, но просто заменить

UPDATE user__attributes 
SET value = REPLACE(value, '2013_Thanksgiving_Final.jpg', 'globalfiles/2016_Thanksgiving_Final.jpg') 
WHERE value LIKE '%2013_Thanksgiving_Final%'; 

если вы хотите заменить UserFiles/пользователь/*/2013_Thanksgiving_Final.jpg с globalfiles/2016_Thanksgiving_Final. JPG следует использовать

UPDATE user__attributes 
SET value = globalfiles/2016_Thanksgiving_Final.jpg 
WHERE value LIKE '%2013_Thanksgiving_Final%'; 
+0

А я все это неправильно, спасибо за помощь! – myaddresstoday

Смежные вопросы