mysql中有没有当这条数据存在的时候不插入,不存在则插入
PHP中文网
PHP中文网 2017-04-17 15:42:49
[MySQL讨论组]

mysql中有没有依据某一列当这存在这个数据存在的时候不插入,不存在则插入。这一列不是唯一索引和主键。
列如:ttid ooid title

   1        1        a
   1        2
   1        3
   2        4
   2        5    
   2        6

现在我有一条数据ttid=1,ooid=7 title=b,因为ttid=1在数据库中已经存在所以这条记录不插入

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
黄舟

我的话我会先select下,看看有没有,如果num==0我就插入

怪我咯

如果非要用SQL实现,可以这么写:

insert into table(ttid,ooid,title) 
select 1,7,'b' from table where not exists(select ttid from table where ttid=1) limit 1

但是建议还是先查一下结果为0的话再插入好一点,除非是你这个操作很频繁,n次操作会带来2n次数据库连接,数据库压力比较大那就用SQL。

PHPz

假设没有其他异常,我的做法是

int count = dao.update(...);//where conditions
if(count == 1) {
  // we have updated one record
} else {
  // do insert
}

如果存在原来的记录的话,这里只做一次更新操作;
如果不存在就做一个尝试更新的操作和一次插入的操作。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号