mysql 表关联批量更新

项目中最近遇到了需要手动修改某个表的某个字段的数据,但是这个数据是来自别的表,需要关联,所以需要用到关联的批量更新,特此记录一下。

UPDATE t_account_trans_info AS ii
INNER JOIN t_user AS uu ON ii.tran_user_id = uu.id
SET ii.text2 = uu.link_man

where ii.tran_user_id = uu.id

原文地址:https://www.cnblogs.com/bfyq/p/9774637.html

时间: 2024-11-12 18:39:37

mysql 表关联批量更新的相关文章

Oracle两张表关联批量更新其中一张表的数据

Oracle两张表关联批量更新其中一张表的数据 方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围. 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED TH

mysql语句:批量更新多条记录的不同值[转]

mysql语句:批量更新多条记录的不同值[转] mysql语句:批量更新多条记录的不同值 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 1 UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新同一字段为同一个值,mysql也很简单,修改下where即可: 1 UPDATE mytable SET myfield = 'value' WHERE other_field in ('o

mysql语句:批量更新多条记录的不同

mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新同一字段为同一个值,mysql也很简单,修改下where即可: UPDATE mytable SET myfield = 'value' WHERE other_field in ('other_values'); 这里注意 ‘other_values’ 是一个逗号(,)分隔的字符串

MYSQL存储过程:批量更新数据

地区等级的信息储存在jsjh_district表. 要更新jsjh_goods_district表的district_level地区信息 DELIMITER $$ DROP PROCEDURE IF EXISTS update_district_level $$ CREATE PROCEDURE update_district_level() BEGIN DECLARE row_id INT;#定义变量ID DECLARE row_district_id INT;#定义变量地区ID DECLAR

MySQL表关联的几种常用方式

工作中我们经常会使用表与表关联来查询数据,如果对join 不熟悉,可能会得到我们不想要的节过,这里就来介绍下join的几种常用方法:建表及插入数据,CREATE TABLE school (sch_id int(11) NOT NULL AUTO_INCREMENT,sch_name varchar(50) NOT NULL,sch_addr varchar(100) DEFAULT NULL,PRIMARY KEY (sch_id)) ENGINE=InnoDB AUTO_INCREMENT=

Mysql中实现多表关联查询更新操作

今天一下要记录一下才行了,每次都要去网上查找方法,每次都难找得要命 Mysql在更新某些字段的数据时,有时候会依据其他表的数据进行更新,需要通过关联后对不同的行更新不同的值,传统的update set没法实现,可以用下面的方法来实现 UPDATE `widetable_solr_field` a INNER JOIN `widetable_field_increat` b SET a.`compose` = b.`udf` WHERE a.`fname` = CONCAT('t',b.`tabl

将mysql表数据批量导入redis zset结构中

工作中有这样一个需求,要将用户的魅力值数据做排行,生成榜单展示前40名,每隔5分钟刷新一次榜单.这样的需求用redis的zset是很方便实现的.但是数据存在mysql的表中,有400多万条,怎么将其快速的放入redis中呢? 一般我们想到是通过程序把数据从mysql中查出来,然后存入redis,但是这样不仅耗时,而且不能保证写入redis的数据的准确性,这中间存在一个部署的时差.通过google老师一查原来redis提供了批量导入数据的功能,原帖地址: http://baijian.github

MYSQL存储过程:批量更新数据2(产品品牌)

执行语句 DELIMITER $$ DROP PROCEDURE IF EXISTS jsjh_goods_property_value_update$$ CREATE PROCEDURE jsjh_goods_property_value_update() BEGIN DECLARE row_base_brand varchar(50);#定义变量品牌 DECLARE row_title varchar(50);#定义tlete DECLARE row_value varchar(50);#定

Mysql when case 批量更新

UPDATE categories SET display_order = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 END WHERE id IN (1,2,3); 这句sql的意思是,更新display_order 字段,如果id=1 则display_order 的值为3,如果id=2 则 display_order 的值为4,如果id=3 则 display_order 的值为5. 即是将条件语句写在了一起. 这里的where部分