1. 题目
-
题目描述
将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现,直接使用update会报错。 -
一张表
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'); -
所需结果
后台会执行下面SQL语句得到结果,对比输出:select * from titles_test where id=5;
2. 题解
按照题目的额要求,必须强制使用 REPLACE。
方法:
# 方法一:赋值 REPLACE
UPDATE titles_test
SET emp_no = REPLACE(emp_no, 10001, 10005)
WHERE id = 5;
实际上不用REPLACE也是可以的:
# 方法二:使用赋值(本题设置后强制报错)
UPDATE TABLE title_test
SET emp_no=10005
WHERE id = 5
该博客介绍了如何使用 SQL 的 REPLACE 函数来更新特定行的数据。题目要求在 titles_test 表中将 id 为 5 且 emp_no 为 10001 的行的 emp_no 替换为 10005,同时保持其他字段不变。提供了两种方法,一种是直接使用 REPLACE 函数更新 emp_no 字段,另一种是通过赋值方式更新。内容涉及到 SQL 更新语句和数据操作。
824

被折叠的 条评论
为什么被折叠?



