0

我想替换部分网址中的字符。

我的网址

www.website.com/images/some-image-in-the-folder.jpg

例如,我o1"

www.website.com/images/ (always the same)

结果会。

www.website.com/images/s1me-image-in-the-f1lder.jpg

我的数据就像:Lorem ipsum dolor sit amet,consectetur adipiscing elit。Maecenas nibh est, suscipit vel vestibulum in, bibendum eget erat。sed 调味品 vulputate。Ut malesuada massa eget libero lobortis sodales。img src="www.website.com/images/some-image-in-the-folder.jpg" Sed eleifend lobortis nisl 坐在 amet faucibus。Morbi eu nunc eget sapien pellentesque convallis eget 在麦格纳。Vivamus convallis sem 在 ante sodales vehicula。Morbi tempus tortor non leo balloon scelerisque。

我怎么做?

MySQL 5.0.95 Apache/2.2.3 phpMyAdmin 3.5.7

非常感谢。我是新手:/

4

4 回答 4

0

此解决方案将允许您根据数据库中的值进行搜索(您不需要提供静态字符串):

Firstsubstring_index用于获取后面的字符串部分 www.website.com/images/

第二o:将第一步返回的所有实例替换为1

第三:用最终结果更新表格

UPDATE table 
SET    yourcolumn = (SELECT Replace((SELECT 
                                   Substring_index((SELECT yourcolumn 
                                             FROM   yourtable), 
                                                'www.website.com/images/', 1 
                                                        )), 'o', '1')); 
于 2013-04-26T12:10:07.900 回答
0

这个对我有用:

update my_table set my_colum = replace(my_colum, "o", "1") 
WHERE post_content REGEXP "http://www\.website\.com/images/.*[o]+.*";
于 2013-05-03T11:10:45.997 回答
0

(此解决方案最动态,通过替换最后一个“/”之后的每个“o” - 无论 URL 是什么)

问题是,仅使用REPLACE()会替换所有出现的“o” - 所以你必须拆分字符串然后替换。让我们从拆分开始:

SELECT SUBSTRING(
  'www.website.com/images/some-image-in-the-folder.jpg',
  1,
  CHAR_LENGTH('www.website.com/images/some-image-in-the-folder.jpg') - LOCATE('/', REVERSE('www.website.com/images/some-image-in-the-folder.jpg')) + 1
);

这给www.website.com/images/

接下来,获取正确的内容并替换字符串:

SELECT REPLACE(
  SUBSTRING_INDEX('www.website.com/images/some-image-in-the-folder.jpg', '/', -1),
  'o',
  '1'
);

这给出了`'s1me-image-in-the-f1lder.jpg'

最后,连接两者:

SELECT
  CONCAT(
    SUBSTRING(
      'www.website.com/images/some-image-in-the-folder.jpg',
       1,
       CHAR_LENGTH('www.website.com/images/some-image-in-the-folder.jpg') - LOCATE('/', REVERSE('www.website.com/images/some-image-in-the-folder.jpg')) + 1
    )
  ,
    REPLACE(
      SUBSTRING_INDEX('www.website.com/images/some-image-in-the-folder.jpg', '/', -1),
      'o',
      '1'
    )
  )
;

瞧:www.website.com/images/s1me-image-in-the-f1lder.jpg:)

值得注意的是,所有使用的函数都是二进制安全的。

于 2013-04-26T12:16:25.877 回答
0

试试这个,mysql

SET @url := 'www.website.com/images/some-image-in-the-folder.jpg';
SET @notreplace := 'www.website.com/images/';

SELECT CONCAT(@notreplace , REPLACE(MID(@url,LENGTH(@notreplace)+1,
LENGTH(@url)-LENGTH(@notreplace)),'o','1') )

SQL

DECLARE @url VARCHAR(1000)
DECLARE @notreplace VARCHAR(1000)

SET @url = 'www.website.com/images/some-image-in-the-folder.jpg'
SET @notreplace = 'www.website.com/images/'

SELECT @notreplace + REPLACE(SUBSTRING(@url,LEN(@notreplace)+1,LEN(@url)-LEN(@notreplace)),'o','1') 
于 2013-04-26T12:01:32.340 回答