MySQL根据字符串的一部分替换整个字符串?

时间:2016-10-27 15:42:01

标签: mysql

假设我有以下MySQL数据

  1. userfiles /用户/ JohnSmith对/ 2013_Thanksgiving_Final.jpg
  2. userfiles /用户/ JaneJohnson / 2013_Thanksgiving_Final.jpg
  3. userfiles /用户/ BobbyLee / 2013_Thanksgiving_Final.jpg
  4. 有没有办法将其更改为?

    1. globalfiles / 2016_Thanksgiving_Final.jpg
    2. globalfiles / 2016_Thanksgiving_Final.jpg
    3. globalfiles / 2016_Thanksgiving_Final.jpg
    4. 我在考虑做这样的事情?

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

      我在想,如果我使用REGEXP,它会针对整个字符串,只根据它的一部分进行替换?虽然我尝试了这个错误。

      谢谢!

1 个答案:

答案 0 :(得分:1)

如果要在现有文件名称处添加globalfiles,则不需要regexp 简单地替换

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

如果你想用globalfiles / user / * / 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%';