SQL44 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005

本题链接
表结构如下所示。

+----+--------+-----------------+------------+------------+
| id | emp_no | title           | from_date  | to_date    |
+----+--------+-----------------+------------+------------+
|  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 |
+----+--------+-----------------+------------+------------+

如果仅仅是更新数据,只需使用一条UPDATE语句即可:

UPDATE titles_test
SET emp_no = '10005'
WHERE id = 5;

但本题限定必须使用REPLACE()函数,实质上是为了考察对该函数的理解。
该函数的用法请参见这里:SQL51 查找字符串中逗号出现的次数
至此,给出本题在使用了REPLACE()函数之后的解:

UPDATE titles_test
SET emp_no = REPLACE(emp_no, 10001, 10005) # 存在从int到string的隐式转换
WHERE id = 5;
posted @   ATester  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示