有t1 和 t2 两个表,表中的数据和字段如下:

执行 如下SQL语句:

update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id)

执行完毕后,t1 结果如下:

1、 为什么?

答:1、update tab1 时,是全表更新,因为没有添加where过滤条件

2、update tab1时,id=3 的数据,计算的结果为NULL

所以name=NULL

2、如果不想改变 id=3 的数据 ,SQL该怎么写?

答:

update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id)

where tab1.id in(select id from tab2)

===========================================================================

测试语句:

 create table tab1
(
id int,
name varchar(200)
);
create table tab2
(
id int,
name varchar(200)
);
insert into tab1 values(1,'name1_')
insert into tab1 values(2,'name2_')
insert into tab1 values(3,'name3_') insert into tab2 values(1,'name1_')
insert into tab2 values(2,'name2_')
insert into tab2 values(4,'name4_') select * from tab1;
select * from tab2; delete from tab1;
delete from tab2; update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id) update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id)
where tab1.id in(select id from tab2)

测试SQL

数据库(update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id))的更多相关文章

  1. MySQL数据库update更新子查询

    比如: ? 1 2 3 4 UPDATE test.tb_vobile a set a.name = '111 ' WHERE a.id = (select max(id) id from test. ...

  2. 数据库 update select 多列操作

    最常用的update语法是:  UPDATE <table_name>  SET <column_name1> = <value>, SET <column_ ...

  3. 数据库update死锁

    比较常见的死锁场景,并发批量update时的一个场景: update cross_marketing set gmtModified = NOW(), pageview = pageview+ #ex ...

  4. 数据库update的异常一例

    调查一列bug,偶然发现了update的一个特性:update t set a=a+1 where id=4; 这样一条简单的语句,也会发生让人意外的事情: 如果 a 的初始值为null时,无论你up ...

  5. 如何提高数据库update更新的速度

    不用不知道,一用吓一跳..看下面这条SQL语句 String sql="update cats set name_alias='"+rs.getString(1)+"'w ...

  6. mysql数据库update时只更新部分数据方法

    需求:更新url中最一个字符的'-1'改为'-5',前面的内容保持不变 url列的内容如下:http://h5game.ecs.cedarmg.com/a/captal/dispther.do?dev ...

  7. mysql数据库从删库到跑路之select单表查询

    一 介绍 本节内容: 查询语法 关键字的执行优先级 简单查询 单条件查询:WHERE 分组查询:GROUP BY HAVING 查询排序:ORDER BY 限制查询的记录数:LIMIT 使用聚合函数查 ...

  8. mybatis用mysql数据库自增主键,插入一条记录返回新增记录的自增主键ID

    今天在敲代码的时候遇到一个问题,就是往数据库里插入一条记录后需要返回这个新增记录的ID(自增主键), 公司框架用的是mybatis的通用Mapper接口,里面的插入方法貌似是不能把新纪录的ID回填到对 ...

  9. 根据excel表格中的内容更新Sql数据库

    关于[无法创建链接服务器 "(null)" 的 OLE DB 访问接口 SQL Server 2008读取EXCEL数据时,可能会报这个错误:无法创建链接服务器 "(nu ...

随机推荐

  1. 华硕飞行堡垒_安装kali后N卡问题

      问题来源: 因业务需要,最近打算安装kali linux操作系统,但是安装完成后开机过一会就会卡死,而且没办法进入用户的登录界面 问题分析: 笔记本电脑信息: 华硕飞行堡垒5 TUF GAMING ...

  2. 如何使用postman判断返回结果是否正确

    针对一个接口,我们在知道参数以及参数对应的结果时,可以通过postman进行判断,验证返回数据是否与预期数据相等.这样可以使我们的接口测试更加的方便简洁. 1.准备数据. postman可以接受的文件 ...

  3. 201871010118-唐敬博《面向对象程序设计(java)》第一周学习总结

    博文正文开头格式:(3分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/p/11435127.html 这个作业的要求在哪里 https:/ ...

  4. misc-3-1

    无后缀,用winhex发现是rar,添加后缀解压,依据是无后缀,丢到kali,是一个流量数据包 TCP追踪流在第五个数据包发现flag.rar 导出对象 选择HTTP 找到flag.rar 然后丢到你 ...

  5. 题解:P2130 狂奔的Wzf

    题目链接 solution 判断有无障碍的时候不需要以此枚举,利用前缀和,如果前缀为零证明没有障碍. 重复很多,写的很丑了,#3死活不过 #include<iostream> #inclu ...

  6. 用CSS绘制实体三角形

    用CSS绘制实体三角形 使用CSS盒模型中的border(边框)即可实现如下所示的三角形: .box { width: 0; height: 0; border-width: 100px; borde ...

  7. 【AtCoder】AtCoder Grand Contest 039 解题报告

    点此进入比赛 \(A\):Connection and Disconnection(点此看题面) 大致题意: 给你一个字符串,将它重复\(k\)次.进行尽量少的操作,每次修改一个位置上的字符,使得不存 ...

  8. Codeforces Round #598 (Div. 3) A. Payment Without Change 水题

    A. Payment Without Change You have a coins of value n and b coins of value 1. You always pay in exac ...

  9. copy-and-swap idiom

    This answer is from https://stackoverflow.com/a/3279550/10133369 Overview Why do we need the copy-an ...

  10. 【51Nod1769】Clarke and math2(数论,组合数学)

    [51Nod1769]Clarke and math2(数论,组合数学) 题面 51Nod 题解 考虑枚举一个\(i_k\),枚举一个\(i\),怎么计算\(i_k\)对\(i\)的贡献. 把\(\f ...