MySQL中REPLACE INTO语句的用法

转载 2016年05月31日 23:01:26

在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。

那么 MySQL 中有无一种简单的办法在一条语句中实现这样的逻辑?对了,那就是使用replace into。


replace into t(id, update_time) values(1, now())

或者

replace into t(id, update_time) select 1, now()


replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。

要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。


MySQL replace into 有三种形式:

1. replace into tbl_name(col_name, ...) values(...)

2. replace into tbl_name(col_name, ...) select ...

3. replace into tbl_name set col_name=value, ...


第一种形式类似于insert into的用法,

第二种replace select的用法也类似于insert select,这种用法并不一定要求列名匹配,事实上,MYSQL甚至不关心select返回的列名,它需要的是列的位置。例如,replace into tb1(  name, title, mood) select  rname, rtitle, rmood from tb2; 这个例子使用replace into从 tb2中将所有数据导入tb1中。

第三种replace set用法类似于update set用法,使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_name)处理。因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1。

前两种形式用的多些。其中 “into” 关键字可以省略,不过最好加上 “into”,这样意思更加直观。另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。

mysql中在sql语句里replace的用法

mysql replace实例说明:    UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def');  REPLACE(str,from_str,to_str) ...
  • StarLOVELeaf
  • StarLOVELeaf
  • 2017年05月26日 15:11
  • 731

Mysql中replace into用法详细说明

Replace into是Insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。 在SQL Serve...
  • superit401
  • superit401
  • 2016年06月04日 17:49
  • 3378

MySQL中REPLACE INTO语句的用法

在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。 那么 MySQL 中有无一种简单的办法在一条语句中实现这样的逻辑?对了,那...
  • zyz511919766
  • zyz511919766
  • 2013年10月28日 15:27
  • 2812

mysql中replace函数的用法

##-----MySQL数据替换即replace的运用-----## #这里主要介绍一些关于replace函数的用法。关于研究这个主要是发现replace功能很强大 #对于屏蔽关键字很有用处。 ...
  • shuiyichuan
  • shuiyichuan
  • 2014年02月14日 14:40
  • 1925

replace的用法

JavaScript replace() 方法 JavaScript String 对象 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替...
  • a745466731
  • a745466731
  • 2016年07月29日 22:47
  • 84

MySQL replace函数替换字符串语句的用法

MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪。 最近在研究CMS,在数据转换的时候需...
  • irizhao
  • irizhao
  • 2015年05月08日 12:34
  • 328

Mysql REPLACE INTO 的原理以及使用方法

Mysql REPLACE INTO 的原理以及使用方法 -注:对应Oracle中的merge into Replace into是Insert into的增强版。 在向表中插入数据...
  • smithdoudou88
  • smithdoudou88
  • 2014年12月03日 15:20
  • 1134

ABAP report常用的一些语句用法(包括字符串操作,变量动态操作)(持续更新)

1、计算内表的长度:       DESCRIBE TABLE   IT_BKPF   LINES   LEN.       后面除了可以接LINES显示条数,还可以接KIND,显示内表的属性,还有...
  • zzj_rainbow
  • zzj_rainbow
  • 2013年08月26日 11:22
  • 3498

MYSQL开发性能研究之INSERT,REPLACE,INSERT-UPDATE性能比较

一、为什么要有这个实验 我们的系统是批处理系统,类似于管道的架构。而各个数据表就是管道的两端,而我们的程序就类似于管道本身。我们所需要做的事情无非就是从A表抽取数据,经过一定过滤、汇总等操作放置...
  • xiefangjin
  • xiefangjin
  • 2016年04月08日 00:08
  • 527

mySQL中replace的用法

mySQL中replace的用法MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪 mysql...
  • u014344668
  • u014344668
  • 2017年03月13日 15:44
  • 147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL中REPLACE INTO语句的用法
举报原因:
原因补充:

(最多只允许输入30个字)