牛客网数据库SQL实战44—— 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005

题目描述

将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现。

CREATE TABLE IF NOT EXISTS 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 into titles_test
select 5, 10005, title, from_date, to_date
from titles_test
where id = 5;

我觉得最好的答案

本题运用 REPLACE 有两种解法
方法一:全字段更新替换。由于 REPLACE 的新记录中 id=5,与表中的主键 id=5 冲突,故会替换掉表中 id=5 的记录,否则会插入一条新记录(例如新插入的记录 id = 10)。并且要将所有字段的值写出,否则将置为空。

REPLACE INTO titles_test VALUES (5, 10005, 'Senior Engineer', '1986-06-26', '9999-01-01')

方法二:运用REPLACE(X,Y,Z)函数。其中X是要处理的字符串,Y是X中将要被替换的字符串,Z是用来替换Y的字符串,最终返回替换后的字符串。以下语句用 UPDATE和REPLACE 配合完成,用REPLACE函数替换后的新值复制给 id=5 的 emp_no。REPLACE的参数为整型时也可通过。

UPDATE titles_test SET emp_no = REPLACE(emp_no,10001,10005) WHERE id = 5

/** 另外可以利用OJ系统的漏洞,不用 REPLACE 实现 **/
1

UPDATE titles_test SET emp_no = 10005 WHERE id = 5

牛客网数据库SQL实战44—— 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005相关推荐

  1. 【数据库SQL实战】将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005

    https://www.nowcoder.com/practice/2bec4d94f525458ca3d0ebf3bc8cd240?tpId=82&tqId=29812&rp=0&a ...

  2. 数据库SQL实战 --43.将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005

    题目描述 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现. CREATE TABLE IF NOT EXISTS t ...

  3. 数据库SQL实战 --42.将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005

    题目描述 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现. CREATE TABLE IF NOT EXISTS t ...

  4. sql replace替换多个字符_牛客网数据库SQL实战详细剖析(4150)

    文章来源:大数据肌肉猿 作者:无精疯 这是一个系列文章,总共61题,分6期,有答案以及解题思路,并附上解题的一个思考过程.具体题目可参考牛客网的SQL实战模块:https://www.nowcoder ...

  5. 牛客网数据库SQL实战答案解析下篇

    部分答案来自牛客网讨论分析 查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部 SELECT c.name, COUNT(fc.film_id) ...

  6. sql not exists用法_牛客网数据库SQL实战详细剖析(5160)(更新完结)

    文章来源:大数据肌肉猿 作者:无精疯 这是一个系列文章,总共61题,分6期,有答案以及解题思路,并附上解题的一个思考过程. 具体题目可参考牛客网的SQL实战模块: https://www.nowcod ...

  7. 牛客网数据库SQL实战45—— 将titles_test表名修改为titles_2017

    牛客网数据库SQL实战45-- 将titles_test表名修改为titles_2017 题目描述 将titles_test表名修改为titles_2017. CREATE TABLE IF NOT ...

  8. 牛客网数据库SQL实战14—— 从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略。

    牛客网数据库SQL实战14-- 从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略. 题目描述 从titles表获取按照title进行分组,每组个数大于等于2,给出titl ...

  9. 牛客网数据库SQL实战25—— 获取员工其当前的薪水比其manager当前薪水还高的相关信息

    牛客网数据库SQL实战25-- 获取员工其当前的薪水比其manager当前薪水还高的相关信息 题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999 ...

最新文章

  1. mysql ls命令,Linux 常用 ls命令详解
  2. NLP 新宠:谈Prompt的前世今生
  3. ​清华来了第二位菲尔兹奖得主,是丘成桐力荐的老朋友Caucher Birkar
  4. cmake 编译选项 add_compile_options CMAKE_CXX_FLAGS 区别
  5. 开发日记-20190903 关键词 C程序gcc编译过程
  6. Effective Java之谨慎地覆盖clone(十一)
  7. java提取字符从mysql_MySQL 字符串截取SUBSTRING()函数
  8. 【C语言简单说】三:整数变量和输出扩展(1)
  9. Ford-Fulkerson Edmonds-Karp算法
  10. 联想 Thinkserver TS250服务器RAID1 重建测试
  11. Ubuntu中的zip / unzip 和 rar / unrar 命令:压缩 / 解压 zip 和 rar 文件
  12. 基于FPGA的SDRAM控制器设计(一)
  13. 【项目复习篇】EGO电商项目技术总结与学习笔记
  14. Ripple 源码笔记
  15. 编写程序,在屏幕输出“Hello,World!“的字符串
  16. 小米机器人 尘盒配件_小米机器人怎么取出尘盒
  17. html auto自动,css中auto什么意思?
  18. 2.4.U-Boot配置和编译过程详解-U-Boot和系统移植第4部分视频课程笔记
  19. Java:如何选择一个好的Java外包合作伙伴?
  20. 直流放大器2级电路设计

热门文章

  1. (J3455/J3155/J4015/J4105/……)无线网卡M.2(ngff) keyA/E接口扩展sata硬盘接口,黑群辉NAS系统
  2. 做一次完美的数据迁移
  3. MBR和GUID分区模式的区别
  4. 『Citric』天空中的繁星 · DP
  5. android 仿微视,腾讯微视和抖音一样?模仿还是照搬?
  6. laravel excel 2.1
  7. 上海计算机学业水平考试,上海信息科技学业水平考试复习资料整理——计算机系统.pdf...
  8. 命令行运行matlab的方法
  9. 食堂总是拥挤不堪?解决用餐拥挤,教你一招
  10. pandas数值型数据和非数值型数据统计