百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> MySQL的String函数locate和replace实战
分享文章到:

MySQL的String函数locate和replace实战

发布时间:01/15 来源: 浏览: 关键词:
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/')

替换包含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/')

能够实现该目的的方法会很多,欢迎大家在下边留言。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有1人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板