视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql的replace和replaceinto_MySQL
2020-11-09 20:12:36 责编:小采
文档
 bitsCN.com

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/19459.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.索引键值相同

bitsCN.com

下载本文
显示全文
专题