【问题标题】:How to replace part of string in SQL [closed]如何在SQL中替换部分字符串[关闭]
【发布时间】:2015-04-06 08:50:00
【问题描述】:

我在 db 列“guid”中有 URL

http://example.com/wp-content/uploads/2014/03/Waterproofing2.png

我要改成

http://example.com/blog/wp-content/uploads/2014/03/Waterproofing2.png

我需要将所有 URL 替换为

http://example.com/wp-content/uploads/

http://example.com/blog/wp-content/uploads/

【问题讨论】:

  • 更新查询有什么问题?

标签: mysql sql string wordpress url


【解决方案1】:

嘿,最简单的方法是在 sql 中使用替换函数

简单

REPLACE(YourString, ‘text to replace’, ‘replace with text’)

REPLACE 根据输入的排序规则执行比较。要在指定排序规则中执行比较,您可以使用 COLLATE 将显式排序规则应用于输入。

在 SQL 中,通配符与 SQL LIKE 运算符一起使用。

SQL 通配符用于在表中搜索数据。

对于 SQL,一些通配符是:

Wildcard    Description
%   A substitute for zero or more characters
_   A substitute for a single character

所以 最快的方法 使用 CONCAT: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat

所以一个朋友的例子,下面改一下

styles/default/xenmoods/pants.png

styles/default/xenmoods/andrew.png

styles/default/xenmoods/rawr.png

到这里

http://cdn.sociallyuncensored.com/styles/default/xenmoods/pants.png
http://cdn.sociallyuncensored.com/styles/default/xenmoods/andrew.png
http://cdn.sociallyuncensored.com/styles/default/xenmoods/rawr.png

代码:

UPDATE YOURTABLE SET path =CONCAT('http://example.com/blog/wpcontent/uploads/', path) ... where ..etc

【讨论】:

    【解决方案2】:

    使用replace函数:

    update `table` set `column`= replace (`column`, 'http://example.com/','http://example.com/blog/') where `column`like 'http://example.com/blog/wp-content/uploads%'
    

    【讨论】:

    【解决方案3】:

    我总是将此查询用于 WordPress 数据库移动

    UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    UPDATE wp_posts SET guid = REPLACE (guid, 'http://olddomain.com', 'http://newdomain.com');
    UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://olddomain.com', 'http://newdomain.com');
    UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://olddomain.com', 'src="http://newdomain.com');
    UPDATE wp_posts SET guid = REPLACE (guid, 'http://olddomain.com', 'http://newdomain.com') WHERE post_type = 'attachment';
    UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://olddomain.com','http://newdomain.com');
    

    【讨论】:

      猜你喜欢
      • 2020-03-04
      • 2018-09-20
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      相关资源
      最近更新 更多