有些情况下,我们需要对数据库进行插入或更新操作的时候需要先根据特定的字段去判断是否已存在,然后做出不同的插入或者跟新操作。

replace函数:

我们要在需要判断的字段上建立一个唯一索引,且这个字段不能为空,否则就和insert完全一样了。replace其实是先删后插,给合并为一个操作了。

执行:

replace into testtb (id,name,age) values('','zhangsan',''),('','zhaoliu','');

结果:

可以看出,name为“zhangsan”的那条记录的age更新为“66”,并且插入了一条记录“4   zhaoliu   44”的数据。

ON DUPLICATE KEY UPDATE实现:

ON DUPLICATE KEY UPDATE需要判断的字段为主键或拥有UNIQUE索引,

执行:

INSERT INTO testtb(id,name,age) VALUES ('','zhangsan',''),('','qianqi','')
ON DUPLICATE KEY UPDATE age='';

结果:

可以看出,根据第一条数据的age更新为了“88”,并且插入了一条记录“5   qianqi   55”的数据。

除了以上的两种方法以外,也可以写一个sql函数来先查询再判断,那样相对麻烦且效率差一些。

Mysql数据存在更新,不存在则插入的实现的更多相关文章

  1. MySQL数据表更新模板

    -- ---------------------------- -- 新增表 -- ---------------------------- CREATE TABLE `biz_circle_lead ...

  2. sql mysql和sqlserver存在就更新,不存在就插入的写法(转)

    转自:http://hi.baidu.com/tidy0608/item/ff930fe2436f2601560f1dd9 sqlsever数据存在就更新,不存在就插入的两种方法 两种经常使用的方法: ...

  3. MySQL基本SQL语句之数据插入、删除数据和更新数据

    一.INSERT插入数据: 方法一:批量插入 基本语法: INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, ...

  4. 【mysql】批量更新数据

    概述 批量更新mysql数据表数据,上网搜索基本都会说4~5方法,本人使用的更新方式为: INSERT ... ON DUPLICATE KEY UPDATE Syntax 可参见官方网站:inser ...

  5. 转 SSIS处理导入数据时, 存在的更新, 不存在的插入

    SSIS处理导入数据时, 存在的更新, 不存在的插入 分类: DTS/SSIS2006-09-10 12:43 18185人阅读 评论(22) 收藏 举报 ssissql servermicrosof ...

  6. 更新ACCESS数据库出现“字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据。”的解决方法

    今天进行数据调试时出现“字段太小而不能接受所要添加的数据的数量.试着插入或粘贴较少的数据.”,跟踪发现是在更新数据库的数据时出现的. 打开数据库表格发现出错的数据字段类型被定义为“文本”,也就是数据最 ...

  7. mysql 中实现多条数据同时更新

    有时间我们需要对一张表进行批量数据的更新.首先我们想的是update 语句. 比如对一张订单表order_info 多条数据更新, update order_inifo set   order_cod ...

  8. MySQL 实现将一个库表里面的数据实时更新到另一个库表里面

    MySQL 实现将一个库表里面的数据实时更新到另一个库表里面 需求描述:MySQL 里面有很多的数据库,这些数据库里面都有同一种表结构的表 (tb_warn_log),这张表的数据是实时更新的,现在需 ...

  9. solr实时更新mysql数据的方法

    第一步:创建core core是solr的特有概念,每个core是一个查询数据,.索引等的集合体,你可以把它想象成一个独立数据库,我们创建一个新core:名字[core1] 进入linux命令行,进入 ...

随机推荐

  1. RN 获取组件的宽度和高度

    https://www.cnblogs.com/zhiyingzhou/p/7471212.html https://blog.csdn.net/calvin_zhou/article/details ...

  2. 2018秋寒假作业5—PTA编程总结2

    1.实验代码: 7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌&qu ...

  3. JAVA之Mybatis基础入门--框架搭建与简单查询

    JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...

  4. Keras bug in model.predict

    When I use Keras to predict behind a web service, it occurred an error. and the error message is lik ...

  5. Postman runner参数化

    按照下面图片的顺序操作吧~ lets go 1.把要做参数化的字段的value用花括号标识起来,如:{{phone}} 2.准备一个csv的文件,把每次请求接口的参数按下图填写好,第一行写字段名称(p ...

  6. python pdfkit html转pdf响应式轮子 django例

    pip install pdfkit 本例用django做的请求,换成对应框架即可 此方法可将html页面转成pdf下载 #!/usr/bin/env python # coding:utf-8 im ...

  7. supersocket 遇到的Failed to initialize 和 log4net用法

    使用Bootstrap来通过配置启动SuperSocket的时候总是显示Failed to initialize!  , 官网配置中 <superSocket> <servers&g ...

  8. python count函数

    描述 Python count() 方法用于统计字符串里某个字符出现的次数.可选参数为在字符串搜索的开始与结束位置. 语法 count()方法语法: str.count(sub, start= 0,e ...

  9. make apr-util 报错 all recurisive

    安装expat库: yum install expat-devel 再次make 即可.

  10. Spring boot 自定义拦截器

    1.新建一个类实现HandlerInterceptor接口,重写接口的方法 package com.zpark.interceptor; import com.zpark.tools.Constant ...