mysql 根据查询结果集更新
声明: MySQL4.0之后的版本可以支持下面sql语句进行更新操作
应用场景:
一个表中的字段需要根据查询结果集进行更新,或者从另一表查询获得 其本质还是更新的数据需要查询获得.
例如: user 表中有也用户会员卡数量的字段,而这些数据保存在另一张表membership_card ,membership_card 表的一条记录代表着一个用户拥有某家商店的会员卡.那么要将想更新用户会员卡数量的字段
更新方法有两种
第一种使用连接关键字,如 left join .....等
update user t LEFT JOIN
( SELECT COUNT(DISTINCT user_id,shop_id) as a ,user_id
from membership_card
GROUP BY user_id
) t1 on t.id=t1.user_id
set t.membership_cards = t1.a ; COMMIT;
第二种是直接利用 "," 直接连接"两张表"(查询结果也是张临时表)
update user t ,
( SELECT COUNT(DISTINCT user_id,shop_id) as a ,user_id
from membership_card
GROUP BY user_id
) t1
set t.membership_cards = t1.a
where t.id=t1.user_id; COMMIT;
mysql 根据查询结果集更新的更多相关文章
- mysql根据查询结果批量更新多条数据(插入或更新)
mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...
- Eclipse中java获得mysql的查询结果集
不废话,先上代码,再上解释说明 package com.ningmeng; import java.sql.*; /** * 1:获取查询结果集 * @author biexiansheng * */ ...
- mysql把查询结果集插入到表理
把表B的内容插入到表A INSERT INTO 1111_0 SELECT*FROM report_0 把查询结果集插入到表中 insert into A(a,b,c) select from B(a ...
- mysql 随机查询 记录集
有时候需求需要随机从数据库查询若干条记录集,网上搜了一下,几篇博文都是些重复的.....不知道他们谁抄的谁的,这里除了介绍提供一种笔者自己想到的方法,本质都是利用mysql 的rand() 第一种方法 ...
- Firebird 用查询结果集更新数据,merge
Merge语法: MERGE INTO target [[AS] target-alias ] USING source [[AS] source-alias ] ON join-condition ...
- SQL与Access使用查询结果集更新表
SQL语法 update 表1 set 字段1 = bb.字段1 from 表1 as aa, (select 字段1,字段2 from 表) bb where aa.字段2 = bb.字段2 Acc ...
- MySQL子查询结果集是否有记录
Mark SELECT tu.id userId, tu.avatar_url avatarUrl, tu.wx_nick_name wxNickName, tu.city city, (select ...
- mysql in查询 结果乱序 引发的思考
Mysql in查询 结果集 乱序 SQL: select * from table where id IN (3,6,9,1,2,5,8,7); 这样的情况取出来后,其实,id还是按1,2,3,4, ...
- jdbc 05: 查询结果集
jdbc连接mysql,查询结果集 package com.examples.jdbc.o5_结果集查询; import java.sql.*; import java.util.ResourceBu ...
随机推荐
- 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServer的datetime有效范围是1753年1月1日到9999年12月31日,如果超出这个范围 ...
- Win7宽带一键创建
简化创建宽带连接步骤,为简便而生. 不断分享,不断进步. 免费下载: http://yunpan.cn/cmZesi2jpJk9E 访问密码 9444
- iOS -- MJrefresh
- (void)refresh { MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self r ...
- C# 压缩与解压字符串(面试题)
/* * 题目:压缩字符串.如“abbcccddddeef”,压缩成“a1b2c3d4e2f1” * 解题: 这个题目也是面试常见的题目.看似很简单,其实暗藏杀机.一般的想法就是,一边遍历,一边计数, ...
- js中如何去获取外部css样式
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- [转]Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
原文地址:http://www.ablanxue.com/prone_3552_1.html 1. 查询整个映射对象所有字段 Java代码 //直接from查询出来的是一个映射对象,即:查询整个映射对 ...
- nginx正向代理,反向代理,透明代理(总结)
1正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连 ...
- java-URLConnection网络数据收取
通过url创建connection方式收取 import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import ja ...
- HTML-正则表达式
常用HTML正则表达式 1.只能输入数字和英文的: <input onkeyup="value=value.replace(/[\W]/g,'') " ...
- 深入理解JVM内幕:从基本结构到Java 7新特性
转自:http://www.importnew.com/1486.html 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境 ...