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

最新文章

  1. ARC下的所有权修饰符
  2. 面试之jsp、Servlet相关知识——生命周期, 区别等
  3. Windows 7 下配置IIS,并且局域网内可访问
  4. sql partition by 的使用
  5. Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53
  6. JS+CSS实现选项卡功能
  7. css02基本选择器
  8. hql 多表查询
  9. eclipse中配置免安装tomcat7
  10. android延迟执行
  11. LeetCode 292. Nim Game (取物游戏)
  12. Linux的启动流程(一)
  13. 干货!微信自动跳转默认浏览器下载app的方法!
  14. nginx 做数据仓库时,location 404 Not Found,发现找不到要用的数据报:Not Found
  15. (转)git 忽略规则
  16. gridview 显示数据库中的超链接
  17. 中大 9095. Islands
  18. 驱动保护中的ObjectType_Callback探索
  19. RHEL6.4 多路径绑定
  20. 小米范工具系列之五:小米范WEB口令扫描器

热门文章

  1. VC++ 控制台不自动退出
  2. gradle构建依赖
  3. python运维开发(二十五)---cmdb开发
  4. Pubwin服务端重装(安装)教程
  5. text-overflow 文字溢出时的设置
  6. Effective Java单元测试TestNG - 就是爱Java
  7. 其中 (%{WORD:x_forword}|-) |表示或的意思
  8. VC断点不可用的问题
  9. COM组件开发实践(七)---多线程ActiveX控件和自动调整ActiveX控件大小(上)
  10. UESTC_秋实大哥打游戏 2015 UESTC Training for Data Structures<Problem H>