网站地图    收藏   

主页 > 后端 > php资料库 >

MySQL替换函数实例教程_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] 一般对于博客程序来说,使用替换语句也许是最有用的一种维护方式了,特别是对于所有博文内容里有统一修改的地方。由于我的博客站点在upload图片上传目录下需要按年建目录,这倒...

一般对于博客程序来说,使用替换语句也许是最有用的一种维护方式了,特别是对于所有博文内容里有统一修改的地方。由于我的博客站点在upload图片上传目录下需要按年建目录,这倒不是什么难点,可是之前上传的图片都要移动到相应的目录里,这样的话博文里所有的图片URL都要改变。

 

比如图片a.jpg原来在upload路径下,博文里的地址是http://www.zhixing123.cnstatic/upload/a.php。现在要把a.jpg移动到upload下的2012文件夹里,那么博文里的地址就需要改变成http://www.zhixing123.cn/static/upload/2012/a.jpg这样才能访问移动后的图片。如果是单处修改还好,如果所有文章的图片地址都需要修改,显然通过后台一篇一篇的改有点力不从心,并且可能会遗漏。像这样的情况,我们可以使用MySQL的替换语句。由于图片地址目录都一样是zhixing123.cn/static/upload,我们只需要把这部分都统一修改成zhixing123.cn/static/upload/2012就好。

SQL语句

UPDATE 表名
SET 字段名 = REPLACE(字段名, '搜索的字符串', '替换的字符串')
WHERE INSTR(字段名,'搜索的字符串') > 0
这个语句的用法特别简单,使用MySQL的REPLACE()替换函数即可实现,REPLACE函数的第一个选项是字段名,第二个选项是要搜索的字符串,第三个选项是替换的字符串。最后那一句INSTR()函数是模糊查询方法,效果跟使用LIKE()函数一样,表示只替换查询到的数据。

如我的表名blog,博文内容字段名b_content,那么这个需求的SQL语句就可以这么写

UPDATE blog
SET b_content = REPLACE(b_content, 'www.zhixing123.cn/static/upload', 'www.zhixing123.cn/static/upload/2012')
WHERE INSTR(b_content,'www.zhixing123.cn/static/upload') > 0

执行后再来看看博文中所有图片的链接地址,都已OK。

其实REPLACE()函数还有很多诸如类似需要用到的地方,比如把博文的空格删掉

UPDATE blog
SET b_content = REPLACE(b_content, ' ', '')
WHERE INSTR(b_content,' ') > 0
但是感觉用MySQL的TRIM()清除空格函数会更好一些

UPDATE blog SET b_content = TRIM(b_content)
这样也可以实现清除空格效果
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论