子查询在UPDATE 语句中的应用
在UPDATE语句中可以在更新列表中以及WHERE语句使用子查询。下面演示一个将图书的出版日期全部更新为所有图书中的最新出版日期,SQL语句如下:
UPDATE T_Book SET FYearPublished=(SELECT MAX(FYearPublished) FROM T_Book)
注意,在MYSQL 中是不支持使用子查询来更新一个列的,所以这个UPDATE 语句无法在MYSQL中执行。
执行完毕查看T_Book表中的内容:
FID FNAME FYEARPUBLISHED FCATEGORYID
1 About J2EE 2008 4
2 Learning Hibernate 2008 4
3 Two Cites 2008 1
4 Jane Eyre 2008 1
5 Oliver Twist 2008 1
6 History of China 2008 2
7 History of England 2008 2
8 History of America 2008 2
9 History of TheWorld 2008 2
10 Atom 2008 3
11 RELATIVITY 2008 3
12 Computer 2008 3
13 Astronomy 2008 3
14 How To Singing 2008 5
15 DaoDeJing 2008 6
16 Obedience toAuthority 2008 6
如果UPDATE语句拥有WHERE子句,那么还可以在WHERE子句中使用子查询,其使用方式与SELECT语句中的子查询基本相同,而且也可以使用相关子查询等高级的特性。
下面的SQL语句用来将所有同类书本书超过3 本的图书的出版日期更新为2005:
UPDATE T_Book b1 SET b1.FYearPublished=2005
WHERE
(
SELECT COUNT(*) FROM T_Book b2
WHERE b1. FCategoryId=b2. FCategoryId
)>3
上面的SQL 语句使用相关子查询来查询所有与待更新的书籍属于同类别的书籍的总数,如果总数大于3则将当前书籍的出版日期更新为2005。
执行完毕查看T_Book表中的内容:
FID FNAME FYEARPUBLISHED FCATEGORYID
1 About J2EE 2008 4
2 Learning Hibernate 2008 4
3 Two Cites 2008 1
4 Jane Eyre 2008 1
5 Oliver Twist 2008 1
6 History of China 2005 2
7 History of England 2005 2
8 History of America 2005 2
9 History of TheWorld 2005 2
10 Atom 2005 3
11 RELATIVITY 2005 3
12 Computer 2005 3
13 Astronomy 2005 3
14 How To Singing 2008 5
15 DaoDeJing 2008 6
16 Obedience toAuthority 2008 6
子查询在UPDATE 语句中的应用的更多相关文章
- MySQL Execution Plan--IN子查询对UPDATE语句影响
问题描述 在系统中发现一条执行时间为为44652.060734秒(12.5小时)的慢SQL,SQL语句为: UPDATE ob_internal_task SET OPERATE_STATUS WHE ...
- 子查询在DELETE语句中的应用
子查询在DELETE 中唯一可以应用的位置就是WHERE 子句,使用子查询可以完成复杂的数据删除控制.其使用方式与SELECT 语句中的子查询基本相同,而且也可以使用相关子查询等高级的特性.下面的SQ ...
- 子查询在INSERT语句中的应用
在使用INSERT语句的时候,一般都是使用它向数据库中一条条的插入数据,比如: INSERT INTO MyTable(FId,FName,FAge)VALUES(1,"John" ...
- 在update语句中使用子查询
在update 中的 where 子句中使用子查询: UPDATE mg_page_log as a SET page_num=1 WHERE id in( SELECT id from mg_ ...
- sql子查询 嵌套SELECT语句
嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值.子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在sele ...
- mssql sql高效关联子查询的update 批量更新
/* 使用带关联子查询的Update更新 --1.创建测试表 create TABLE Table1 ( a varchar(10), b varchar(10), ...
- UPDATE语句中SET部分列赋值的先后顺序有影响么?
昨天研发同事问我个问题,UPDATE语句中SET部分列赋值的先后顺序会影响结果么?以前没考虑过这个问题,因为通常我们都会UPDATE时给列赋予一个确定的值,而不是一个依赖于其他列的值. 测试环境: D ...
- 输出,变量的使用,子查询,逻辑语句,循环,case..when..then..end多分支语句,Exists(判断存在)
--------------输出----------------print 'hello world'--以文本形式输出select 'hello world'--以网格形式输出,也可以设置成以文本形 ...
- where EXISTS (子查询)多对多中通过中间表查对方列表
用户表A,小组表B,小组和用户是多对多关系,中间有个中间表M 已知 小组 id 即teamId ,想知道这个小组中的用户列表信息,可以如下写sql: select * from A a where E ...
随机推荐
- 【20151105noip膜你赛】bzoj3652 bzoj3653
题目仿佛在讽刺我... 第一题: 题解: 考虑枚举区间右端点,维护所以左到当前的 and 和 or .注意 and 每次变化至少有一个二进制位从1变 0,or 每次至少有一个位从0变 1,所以最多有l ...
- 12.24笔记(关于//UIDynamic演练//多对象的附加行为//UIDynamic简单演练//UIDynamic//(CoreText框架)NSAttributedString)
12.24笔记1.UIDynamic注意点:演示代码:上面中设置视图旋转的时候,需要注意设置M_PI_4时,视图两边保持平衡状态,达不到仿真效果.需要偏移下角度.2.吸附行为3.推动行为初 ...
- 多github帐号的SSH key切换
我有两个github帐号,一个是个人所用,一个是为公司项目所用.如果是单用户(single-user),很方便,默认拿id_rsa与你的github服务器的公钥对比:如果是多用户(multi-user ...
- php中的parse_ini_file函数
作用:parse_ini_file() 函数解析一个配置文件,并以数组的形式返回其中的设置 格式:parse_ini_file(file,true)// (第二个参数为可选参数.如果设置为 true, ...
- python基础===两个list之间移动元素
首先我们先了解一下list的几个常用函数: a = [123,456,"tony","jack"] #list中增加元素a.append("www&q ...
- 64_k1
KoboDeluxe-0.5.1-22.fc26.x86_64.rpm 13-Feb-2017 22:11 1626454 k3b-17.04.1-1.fc26.x86_64.rpm 25-May-2 ...
- golang相关问题
[转载][翻译]Go的50坑:新Golang开发者要注意的陷阱.技巧和常见错误[1] Golang作为一个略古怪而新的语言,有自己一套特色和哲学.从其他语言转来的开发者在刚接触到的时候往往 ...
- django “如何”系列5:如何编写自定义存储系统
如果你需要提供一个自定义的文件存储-一个常见的例子便是在远程系统上存储文件-你可以通过定义一个自己的存储类来做这件事情,你将通过一下步骤: 你自定义的存储系统一定是django.core.files. ...
- ubuntu下ssh服务相关操作
1.安装ssh服务:apt-get install openssh-server 2.检测ssh开启状态:ps -e | grep ssh 3.启动ssh:/etc/init.d/ssh start ...
- LeetCode解题报告—— Unique Binary Search Trees & Binary Tree Level Order Traversal & Binary Tree Zigzag Level Order Traversal
1. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that ...