一条mysql语句判断是添加还是修改
一般正常的情况下都会遇到这种需求
有一些数据信息,我们每次发生请求的时候,要判断此条数据是否存在,如果存在则进行修改操作,反则进行插入操作,一般人都会这样写
if($name1==$name2){
$sql="update table set a1='a1'";
}else{
$sql="insert into table(a1) values('a1')";
}
现在刚发现mysql有个自带的函数,可以一句sql就代替上面的代码 ,php判断都不用写了,这个方法就是
ON DUPLICATE KEY UPDATE
用法如下
$sql="insert into cinema(movieName,releaseInfo,sumBoxInfo,boxInfo,boxRate,showInfo,showRate,avgShowView,avgSeatView) values ('$movieName','$releaseInfo','$sumBoxInfo','$boxInfo','$boxRate','$showInfo','$showRate','$avgShowView','$avgSeatView') ON DUPLICATE KEY UPDATE movieName='$movieName',releaseInfo='$releaseInfo',sumBoxInfo='$sumBoxInfo',boxInfo='$boxInfo', boxRate='$showInfo',showInfo='$showInfo',showRate='$showRate',avgShowView='$avgShowView',avgSeatView='$avgSeatView'";
用的时候 注意一下,最好保持有一个主键,到时候程序会根据你的这个主键 是否相同,去判断这条数据是否存在,比如说 movieName是主键,则sql判断的时候会去找 movieName在表中是否有相同的,如果有 则进行修改,没有则进行插入操作。
有的人 会问,如果有多个索引 怎么办呢,这个我还没测试呢,从网上找了一段解释,你们看下
id int not null primary key,
num int not null UNIQUE key,
tid int not null
)
为了测试两个唯一索引都冲突的情况,然后插入下面的数据
insert into test values(1,1,1), (2,2,2);
然后执行:
insert into test values(1,2,3) on duplicate key update tid = tid + 1;
因为a和b都是唯一索引,插入的数据在两条记录上产生了冲突,然而执行后只有第一条记录被修改
转载于:https://www.cnblogs.com/HoverM/p/9259320.html
一条mysql语句判断是添加还是修改相关推荐
- 一条mysql语句查询出男女的人数
统计报表中,为了实现一条mysql语句查询出男女的人数,sql语句如下: #年末年龄统计表 select COUNT(case when info.sex = 'm' then sex end ) a ...
- mysql自动添加多条数据_用一条mysql语句插入多条数据
这篇文章主要介绍了在mysql中使用一条sql语句插入多条数据,效率非常高,但是原理其实很简单,希望对大家有所帮助 假如有一个数据表A: id name title addtime 如果需要插入n条数 ...
- 一条mysql语句是事务吗_没想到!我在简历上写了“精通MySQL”,阿里面试官跟我死磕后就给我发了高薪offer...
事情是这样的 前段时间面试了阿里,大家也都清楚,如果你在简历上面写着你精通XX技术,那面试官就会跟你死磕到底. 我就是在自己的简历上写了精通MySQL,然后就开启了和阿里面试官的死磕之路,结果就是拿到 ...
- mysql 删除 修改数据库语句_数据库——添加,修改,删除
需要执行的SQL语句: 数据库中对数据进行的添加.修改和删除操作均属于数据库操纵语言(DML),这类类型的SQL语句只有执行数据控制语言(DCL)中的commit才能使之起作用,DCL语言中的roll ...
- 初识Mysql(part19)--我需要知道的3条Mysql语句之组合查询
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UNION.UNION ALL 此Blog会用到下面2个表. temp_product2: # id, ...
- 初识Mysql(part17)--我需要知道的3条Mysql语句之联结
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:联结.INNER JOIN.ON关键字 此Blog会用到下面3个表. temp_store表: # p ...
- 用一条mysql语句插入多条数据
这篇文章主要介绍了在mysql中使用一条sql语句插入多条数据,效率非常高,但是原理其实很简单,希望对大家有所帮助 假如有一个数据表A: id name title addtime 如果需要插入n条数 ...
- c mysql显示多条数据_用一条mysql语句插入多条数据
假如有一个数据表A: id name title addtime 如果需要插入n条数据 : $time= time(); $data = array( array( 'name'=>'name1 ...
- 初识Mysql(part5)--我需要知道的11条Mysql语句之过滤
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:WHERE关键字.AND关键字.OR关键字.IS关键字.IN关键字 此Blog里的例子都会用下面int ...
最新文章
- (转)Thread的中断机制(interrupt)
- JVM调优常用参数配置
- windows下面的txt在linux下面显示为乱码
- 三分钟教你用 Scarlet 写一个 WebSocket App
- python编程入门与案例详解-Python爬虫天气预报实例详解(小白入门)
- Ubuntu安装anaconda,tensorflow,keras,pytorch
- Linux 命令之 crontab 计划任务与自动同步系统时间
- linux系统有界面么,linux系统界面详情介绍
- 使用ActivityGroup管理Activity
- 韦东山Linux嵌入式学习——硬件复习
- 2019年 CCF 中国计算机学会推荐国际学术会议和期刊目录 最新版
- 【某deed和某app面试】
- vim : 删除不包含某字符的行
- 疑难杂症篇(五)--从word2019复制编辑好的公式到visio2019出现乱码的解决方案
- 计算机中分类汇总的列子,EXCEL函数大全(含详细例子)-excel函数大全详细.pdf
- er图转换成关系模型的例题_有关数据库系统的练习题 E-R图的关系画图转换,,急需 谢谢了...
- 11 个非常有用的 HTML One-Liners
- 【一窥道德经】第三章
- ADI Blackfin DSP处理器-BF533的开发详解8:Timer定时器的驱动和应用(含源代码)
- Python双线性插值和双三次插值