首页 > 代码库 > mysql ON DUPLICATE KEY UPDATE ;
mysql ON DUPLICATE KEY UPDATE ;
需求:
1)如果admin表中没有数据, 插入一条
2)如果admin表中有数据, 不插入.
一般做法:
1 if($result = mysql_query("select * from admin")) 2 { 3 if(mysql_num_rows($result)) 4 { 5 echo "<br/>admin表中已经有数据了"; 6 } 7 else 8 { 9 $sql = " insert into admin (`adminName`, `password`, `lastUpdateTime`) values(‘admin‘, ‘1234.asd‘, " .time(). ")"; 10 if(mysql_query($sql)) 11 { 12 echo "<br/>admin表中插入一条信息成功"; 13 } 14 else 15 { 16 echo "<br/>admin表中插入一条信息失败"; 17 } 18 } 19 }
如果用一条sql语句.
INSERT INTO admin (`id`, `adminName`, `password`, `lastUpdateTime`) VALUES (1,‘admin‘, ‘1234.asd‘,1495871878) ON DUPLICATE KEY UPDATE `password` = ‘1234.asd‘
这里 id 是 主键 . 插入的数据必须包含主键 .
第一次执行: 插入一条数据, 影响一行
第二次执行: 发现有重复的值,执行update操作, 但是设置的password仍然相同, 因此update操作停止, 影响 0行.
上面设置 插入id不是普遍情况, 更多的是保持其他字段唯一的.
参考:
深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
mysql ON DUPLICATE KEY UPDATE ;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。