示例:
将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现,直接使用update会报错了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
CREATE TABLE titles_test ( id int (11) not null primary key, emp_no int (11) NOT NULL, title varchar(50) NOT NULL, from_date date NOT NULL, to_date date DEFAULT NULL); insert into titles_test values ( '1' , '10001' , 'Senior Engineer' , '1986-06-26' , '9999-01-01' ), ( '2' , '10002' , 'Staff' , '1996-08-03' , '9999-01-01' ), ( '3' , '10003' , 'Senior Engineer' , '1995-12-03' , '9999-01-01' ), ( '4' , '10004' , 'Senior Engineer' , '1995-12-03' , '9999-01-01' ), ( '5' , '10001' , 'Senior Engineer' , '1986-06-26' , '9999-01-01' ), ( '6' , '10002' , 'Staff' , '1996-08-03' , '9999-01-01' ), ( '7' , '10003' , 'Senior Engineer' , '1995-12-03' , '9999-01-01' );
|
考查的是replace函数,REPLACE(X,Y,Z)
其中包含三个参数,
第一个参数为该字段的名称,第二参数为该字段的需要被修改值,第三个参数为该字段修改后的值。
update titles_test set emp_no = replace(emp_no,10001,10005) where id = 5
REPLACE 有两种解法
方法一:全字段更新替换
示例:
1
|
REPLACE INTO titles_test VALUES ( 5 , 10005 , 'Senior Engineer' , '1986-06-26' , '9999-01-01' ) |
方法二:运用REPLACE(X,Y,Z)函数,
UPDATE和REPLACE 配合完成
1
|
UPDATE titles_test SET emp_no = REPLACE(emp_no, 10001 , 10005 ) WHERE id = 5 |