注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红尘若梦

生活的色彩

 
 
 

日志

 
 

MYSQL插入记录前判断是否已有记录补充  

2015-10-30 15:21:23|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
之前已经说过,利用DUAL表可以可以判断表中是否有某记录存在,然后执行INSERT或UPDATE操作。但是那样仍旧是有点麻烦的,不过总好过利用程序判断是否已有记录。但其实还是有一种更便利的办法,即是利用主键的唯一性,一条SQL语句即可完成插入或修改记录,不用提前判断记录是否存在。

replace into site(id,title) values('1','我就上乐乐吧'); #该语句如果主键为1记录的不存在,就直接插入,否则就是更新主键为1的记录字段title为‘我就上乐乐吧’。

该语句适应范围广,在大部分需要先判断是否存在记录,再决定是INSERT或UPDATE的情况下,使用非常便利。但请注意,如果表字段很多的话,即使只是想更新一个字段,也需要把所有字段都带上,不然会将没有选择的字段值置成空。
replace其实除了这个功能之外,还可以替换字段中的值内容,虽然我们大部分的时间只是简单的替换字符,但如果是批量替换某表字段内容,这个函数还是很有意义的。

update site set `content`=replace(`content`,'我就上东东吧','593368.com');#一条语句将表site中所有记录的字段content中内容‘我就上乐乐吧’替换成'593668.com'

利用好这个功能,将一些提交的内容过滤掉不安全的字符,这算是再加上一道安全锁,对数据库安全也更有重要意义。



  评论这张
 
阅读(113)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017