sql拾遗

1、批量替换指定字段,指定数据的方法

update 表名 set 要替换的字段名 = REPLACE(要替换的字段名,‘要替换的数据’,‘新数据’)

 

  此处用到了REPLACE()替换函数,不妨在学习下REPLACE()的其他应用场景

    数据引用

  1.1 创建表:
      CREATE TABLE `test_tb` (                                                 
      `id` int(10) unsigned NOT NULL auto_increment COMMENT '主键自增',  
      `name` char(30) default NULL COMMENT '姓名',                         
      `address` char(60) default NULL COMMENT '地址',                      
      `country` char(200) default NULL COMMENT '国家',                     
      PRIMARY KEY  (`id`)                                                    
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='测试表'  

  1.2 插入数据:
      insert into test_tb(name,address,country) values
      ('zhangsan','北京 朝阳区','中国'),
      ('lisi','上海 浦东区','中国'),
      ('wangwu','郑州金水区','中国'),
      ('zhaoliu','香港九龙','中国香港'),
      ('Q7','加州牛肉','美国'),
      ('wangba','新九州岛','日本')

  

 

 

   REPLACE()查询替换

  把表中address字段的‘区’字换成‘驱’字

         select *, replace(address,'区','驱') as a from test_tb

  执行语句得到结果

 

  REPLACE()更新替换

  把表中 九 字,换成 十 字

  update test_tb set address = replace (address,'九','十') where id = 4

  

 

 

   值得注意的是,要记得添加where 条件, 不然会把表中所有的九字,替换成十字,

  反之,如果想向开头那样本来就是要替换全表指定数据,就不必加条件

 

  REPLACE()插入替换  

  replace into test_tb values (6,'wow','新九洲岛','日本')

     

  之所以说是插入替换,是因为如果表中没有id=6的数据,那么会作为一条新数据插入表中,起到了

  insert into的作用,如果有id=6这条数据,就会起到update的作用,替换掉指定的数据

 

---------------------------------------------------------------------------------------------------------------------------------------

posted @ 2021-01-15 08:44  Code_zero  阅读(66)  评论(0)    收藏  举报