首页 > 数据库技术 > 详细

mysql若不存在则插入写法

时间:2016-03-17 12:52:09      阅读:197      评论:0      收藏:0      [点我收藏+]

最开始想到的办法是先SELECT * FROM table WHERE f1=‘d1‘,然后判断之后插入

优化方法 * 可以改为随便一个数字 比如1,然后因为f1不是唯一字段,所以最后在家LIMIT 1

后来听说可以用NOT EXIST来判断,当然了不能直接用INSERT INTO … NOT EXIST (SELECT * FROM table WHERE f1=‘d1‘)这样写,参考下面:

INSERT INTO `table` (value1, value2) 
    SELECT ‘stuff for value1‘, ‘stuff for value2‘ FROM DUAL
    WHERE NOT EXISTS (SELECT * FROM `table` WHERE value1=‘stuff for value1‘ AND value2=‘stuff for value2‘)

因为EXIST只判断存在不存在,用*还是什么以及LIMIT 1,MYSQL都会无视的,直接按最佳优化执行的。

再后来才知道INSERT IGNORE INTO代替INSERT INTO

mysql若不存在则插入写法

原文:http://www.cnblogs.com/webkb/p/5286826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!