将表中住址为"上海市"的员工住址改为"北京市"
update employee  
set addr like '北京市'
where addr like '上海市'
这是论坛上看到的一个例句,但是我用这种方法查询,总是在like这里报错,而且,员工的地址,是上海市XXXXXXX,仅仅是改市名,为什么不是like ’北京市%’了,我这样写了,还是在like这里报错应该怎么写啊,改一个字段的一部分内容

解决方案 »

  1.   

    update employee  
    set addr = '北京市'
    where addr like '上海市'
      

  2.   


    update employee  
    set addr = replace(addr,'北京市','上海市')
    where addr like '上海市%'
      

  3.   

    晕 俺没看清lz需求
    ls 的replace 函数中两个字符串写反了正确的如下
    SQL> show user
    USER 为 "SCOTT"
    SQL> drop table test;表已删除。SQL> ed
    已写入 file afiedt.buf  1  CREATE TABLE test (
      2     col VARCHAR2(20)
      3* )
    SQL> /表已创建。SQL> ed
    已写入 file afiedt.buf  1* INSERT      INTO test VALUES ('上海市某地某地')
    SQL> /已创建 1 行。SQL> select * from test;COL
    --------------------
    上海市某地某地SQL> ed
    已写入 file afiedt.buf  1  update  test
      2  set col = replace(col,'上海市','北京市')
      3* where col like '上海市%'
    SQL> /已更新 1 行。SQL> select * from test;COL
    --------------------
    北京市某地某地SQL>
      

  4.   

    看来要用replace这个函数啊,拜谢各位大神