mysql 的replace 和replace in to
1. mysql 的replace 批量替换
update candidate set education = replace(education,'科','学') where education like '%科%';
把数据中出现"科"的都替换为"学"。

2. mysql 的replace into
sql="replace into score (quest_id,jdg_id,cd_id,score) values ('"+ questionId+"','"+ judgesId+"','"+candidateId+"','"+score+"')";
以下为转载 http://www.cnblogs.com/wangtao_20/archive/2011/02/03/1948959.html
id 是主键
测试方式一,插入索引值是一样的:
REPLACE INTO fanwe_order(id,sn) VALUES('33','测试replace into 使用') 结果:受影响的行数:
2 SELECT * FROM fanwe_order WHERE sn='测试replace into 使用'
结果:查出 一行记录
测试方式二,插入主键值是重复的:
将插入id指定为34。这样不与数据表中的id有重复现象,之后运行查询
REPLACE INTO fanwe_order(id,sn) VALUES('34','测试replace into 使用')
结果:没有新插入一条数据。还是替换了原来的那行。id从33变为34
原因分析:
手册上提到,如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值。
意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。
刚才测试的例子中。id是主键,sn是唯一索引。测试方式一是出现主键值一样,测试方式二是出现唯一索
引值一样。两种情况都出现了replace
理解:插入数据的时候,假如遇到主键值或者唯一索引键值一样的话。那么就使用替代(replace单词的含
义反应了其作用)的方式,删掉原来的。以当前插入的行进行替代(所以需要同时具有insert和delete权限
)
先删除后插入新的。正好说明了我看到的现象:显示受影响的行数是2
两种情况之一使用replace语句才会出现替换:1.主键值相同 2.索引键值相同
mysql 的replace 和replace in to的更多相关文章
- mysql函数之七:replace() MySQL批量替换指定字段字符串
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
- MySQL replace 和 replace into 的用法
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
- Mysql中replace与replace into的用法讲解
Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert ...
- Mysql中FIND_IN_SET和REPLACE函数简介
一 FIND_IN_SET() SELECT * from u_user where FIND_IN_SET('32',tags) 上面的sql是精确查找,查找表中tags中含有32的记录(注意这里 ...
- MySql数据的插入-replace into
一.新的数据插入方式:REPLACE INTO mysql中常用的插入方式:INSERT INTO 如果要插入不重复的数据的方式:REPLACE INTO 二.二者比较: replace into 首 ...
- java中string的replace和replace的区别
乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),replaceall替换所有的字符,其实大不然,只是替换的用途不一样,简而言之,replace用新串序列替换 ...
- MYSQL中replace into的用法以及与inset into的区别
在向表中插入数据时,我们经常会遇到这样的情况:1.首先判断数据是否存在:2.如果不存在,则插入:3.如果存在,则更新. 在SQL Server中可以这样处理: if not exists (selec ...
- replace() MySQL批量替换指定字段字符串
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
- mySQL中replace的用法
MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪 mysql replace实例说明: ...
随机推荐
- 浅析Struts1和Struts2的Action线程安全问题
tomcat容器对servlet的实现采用的是单例模式,对于一个servlet类,永远只有一个servlet对象存在. 下面我们来解释为什么Struts1是线程不安全的. 1.Struts1 Stru ...
- 网络编程之UDP
UDP编程流程:一服务端:1.创建socket. DatagramSocket socket = new DatagramSocket(8878); 2.创建数据包,用来接收发送的数据包.byte[ ...
- 驱动编程思想之初体验 --------------- 嵌入式linux驱动开发之点亮LED
这节我们就开始开始进行实战啦!这里顺便说一下啊,出来做开发的基础很重要啊,基础不好,迟早是要恶补的.个人深刻觉得像这种嵌入式的开发对C语言和微机接口与原理是非常依赖的,必须要有深厚的基础才能hold的 ...
- (原)ubuntu上安装dlib
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5652791.html 参考网址: http://stackoverflow.com/questions ...
- Mysql 建表时,日期时间类型选择
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 D ...
- postgresql赋予/撤消 用户权限
(1)给予权限:grant grant select on 表名 to 用户名: (2)撤消权限:revoke revoke select on 表名 from ...
- 利用fiddler录制脚本
特性说明: 版本:V4.4 用途:将fiddler抓取的请求,导出为jmx格式,方便jmeter直接调用 新增功能: 1.在测试计划下,新增[HTTP请求默认值],内容为空,后续需将站点的IP和端口填 ...
- 在eclipse中首次新建项目的时候,出现Project interpreter not specified
在eclipse中首次新建项目的时候,出现Project interpreter not specified(大致可以理解为:没有执行的项目编译者) 原因就是安装了pydev之后,我们的python还 ...
- C# 客户端发送http请求代码 (c/s)
public class RestClient { private string BaseUri; public RestClient(string baseUri) { this.BaseUri = ...
- PYCURL ERROR 6 - “Couldn't resolve host 'mirrorlist.centos.org'”
在虚拟机上安装的CentOS,估计是网络配置问题,导致yum update和yum install之类的功能的用不了.出现标题上面的错误. ifdown [network_adapter] ifup ...