【问题标题】:Mysql replaces part of a text in the databaseMysql替换数据库中的部分文本
【发布时间】:2015-06-25 11:55:12
【问题描述】:

我必须更新的表(images_list 是表的名称)有超过 500 行带有某个链接,我必须将其替换为连接到本地文件夹的 url。

例如,一个字段将包含www.google.com/img/test-more-text.gif,并且必须将其替换为/image/test-more-text.gif。每行的前缀链接完全相同,唯一的可变部分是图像名称(例如test-more-text.gif是上面给出的示例中唯一的可变部分)

我查看了多个教程,但我能找到的唯一内容替换了完整的字段,而我需要保留后缀。

这张图片显然也有不同的名字,所以我不能简单地这样做

UPDATE images_list 
SET image_link = '/image/test-more-text.gif' 
WHERE image_link = 'www.google.com/img/test-more-text.gif'

我知道如何使用 LIKE 语句查找文本,但我以前从未更新过这样的内容。

如果有人知道如何做到这一点,那我的工作量会很大

【问题讨论】:

  • image_link值的开头真的有空格吗?
  • @barmar 抱歉,我编辑了它
  • @krycke 我已经发现了这个问题,但它完全取代了这个领域,我需要的是只替换 Barmar 给出的答案中的特定部分
  • 我认为它按照 Barmar 的建议将 'a' 替换为 'b'。

标签: php mysql sql


【解决方案1】:

使用REPLACE函数:

UPDATE images_list
SET image_link = REPLACE(image_link, 'www.google.com/img/', '/image/');
WHERE image_link LIKE 'www.google.com/img/%'

【讨论】:

    猜你喜欢
    • 2017-06-05
    • 1970-01-01
    • 2014-11-06
    • 2016-02-20
    • 1970-01-01
    • 2021-07-22
    • 2012-01-05
    • 1970-01-01
    • 2014-08-28
    相关资源
    最近更新 更多