设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL的String函数locate及replace实战

发布时间:2022-06-28 14:17 所属栏目:115 来源:互联网
导读:
导读:locate(substr,str,pos)函数是返回子串 substr 在字符串 str 中第一次出现的位置,如果子串 substr 在 str 中不存在,返回值为 0,REPLACE(str,from_str,to_str)替换字串,str为源字串,from_str为将要被替换的字串,to_str为目的字串. 有关mysql中的locate函数可
  locate(substr,str,pos)函数是返回子串 substr 在字符串 str 中第一次出现的位置,如果子串 substr 在 str 中不存在,返回值为 0,REPLACE(str,from_str,to_str)替换字串,str为源字串,from_str为将要被替换的字串,to_str为目的字串.
 
  有关mysql中的locate函数可以查看该链接:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_locate
 
  有关mysql中的replace函数可以查看该链接:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace
 
  以上便是今天我们要介绍使用的两个函数.
 
  使用背景:
 
  条件:field_data_body 表的body_value值中有这样一个规律的字符串"/eapdomain/UserFiles/1073/File/"、"/eapdomain/UserFiles/1073/File/",其中1073是用户id。不要惊讶为什么会有这样的路径!
 
  目的:body_value中所有的符合上述规律的字符串替换为 "/sites/default/files/old/image/","/sites/default/files/old/file/"。
 
  难点:数据量略大4千条数据,不可能手动更改,每条数据中可能存在着不止一个这样的路径或者不存在,用户id为变动的,不能确定.
 
  直接操作数据库吧,在Navicat中,打开你的数据库命令行工具,不限于此工具,输入以下的命令进行替换工作.
 
  替换包含image的字符串:
 
  UPDATE field_data_body set body_value = replace(body_value, substring(body_value, locate('/eapdomain/UserFiles/', body_value),locate('/Image/', body_value)+7-locate('/eapdomain/UserFiles/', body_value)),'/sites/default/files/old/image/')  --phpfensi.com
  替换包含file的字符串:
 
  UPDATE field_data_body set body_value = replace(body_value, substring(body_value, locate('/eapdomain/UserFiles/', body_value),locate('/File/', body_value)+6-locate('/eapdomain/UserFiles/', body_value)),'/sites/default/files/old/file/')
  能够实现该目的的方法会很多,欢迎大家在下边留言.

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读