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实例说明: ...
随机推荐
- 控制点:ControlPoint
位于control:Points面板下,kitControl面板的ControlPallette中也存在控制点. 控制点是什么呢?一个数据值.一个传感器的值.比如,温度值,风速值,压力值,光照值,开关 ...
- Memcache入门知识
Memcache适合做缓存,是一款管理内存的很小的软件,实现对内存数据的管理,一般我们用memcache存储临时数据,因为内存不能储存永久化的数据,内存里面的数据,断电就消失了. memcache可以 ...
- php 数组Array 删除指定键名值
if(array_key_exists('keyname',$array)){ //检查数组中此键名是否存在: unset($array['keyname']); //删除后位置仍然保留,但清空了键名 ...
- hdu 1428 漫步校园
http://acm.hdu.edu.cn/showproblem.php?pid=1428 dijstra+dp; #include <cstdio> #include <queu ...
- NOI十连测 第四测 T1
思路:首先每个蚂蚁移速相同,而且碰到就转头,这其实等价于擦肩而过! 看到2n个数互不相同就觉得方便多了:枚举每个数字往左或者往右作为最慢,然后考虑其他蚂蚁有多少种走路方向. (1),走的距离大于m/2 ...
- WPF笔记(2.6 ViewBox)——Layout
原文:WPF笔记(2.6 ViewBox)--Layout 在Canvas外面包一层ViewBox,可以使Canvas内的控件填充整个ViewBox,并随着ViewBox的大小变化而同步变化,这是因为 ...
- 认识元数据和IL(下)<第五篇>
书接上回: 第二十四回:认识元数据和IL(上) , 第二十五回:认识元数据和IL(中) 我们继续. 终于到了,说说元数据和IL在JIT编译时的角色了,虽然两个回合的铺垫未免铺张,但是却丝毫不为过,因为 ...
- SQL Server索引 - 聚集索引、非聚集索引、非聚集唯一索引 <第八篇>
聚集索引.非聚集索引.非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询.先说明一下,无论是聚集索引还是非聚集索引都是B树结构. 聚集索引默认与主键相匹配,在设置主键时,SQL Ser ...
- Jedis超时时间设置梳理
JedisConnectionException: Unexpected end of stream #932 Repeatable exception and for the life of me, ...
- shell字符串
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 str='this ...