日期:2014-05-17  浏览次数:20849 次

这个该怎么写
将表中住址为"上海市"的员工住址改为"北京市"
update employee  
set addr like '北京市'
where addr like '上海市'


这是论坛上看到的一个例句,但是我用这种方法查询,总是在like这里报错,而且,员工的地址,是上海市XXXXXXX,仅仅是改市名,为什么不是like ’北京市%’了,我这样写了,还是在like这里报错

应该怎么写啊,改一个字段的一部分内容

------解决方案--------------------

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

------解决方案--------------------
晕 俺没看清lz需求
ls 的replace 函数中两个字符串写反了

正确的如下
SQL code
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>