MySQL多表更新

update payb a
inner join payb_item b on a.paybno=b.paybno
inner join loan_vilt c on b.loano=c.loano
inner join loan d on b.loano=d.loano
inner join loan_repay e on e.loano=d.loano and e.idx=c.idx
set a.state=#{newst},a.vn=a.vn+1,a.uptime=now(),
    c.state=#{loan_vilt_newst},c.vn=c.vn+1,c.uptime=now(),
    d.state=#{loan_newst},d.vn=d.vn+1,d.uptime=now(),
    e.state=#{loan_repay_newst},e.vn=e.vn+1,e.uptime=now()
where a.paybno=#{paybno} and a.state=#{oldst} and a.vn=#{curvn}
  and c.state=#{loan_vilt_oldst}
  and d.state in (#{loan_oldst_ins})
  and e.state=#{loan_repay_oldst};
时间: 2024-08-11 16:14:47

MySQL多表更新的相关文章

MYSQL 多表更新 UPDATE SET like concat('%',abc,'%');

SQL语句为:select * from table1 where `text` like CONCAT('%',(select name from table2 where id =3),'%'); UPDATE ecs_region a,nation b SET a.code = b.code where b.province like concat('%',a.region_name,'%'); UPDATE ecs_region a,nation b SET a.code = b.cod

Mysql跨表更新 多表update sql语句总结

Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%. 在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式: UPDATE product p, productPri

mysql大表更新sql的优化策略(转)

看了该文章之后,很受启发,mysql在update时,一般也是先select,而此时,如果没有使用索引,那会锁住整个表.使用索引的最佳 方式是使用主键,如果我们知道主键的范围(只要是精确范围的超集就可以了),那可以在查询条件中加上主键的范围,这样查询时,会 使用主键索引,就可以提高查询的速度了.这样,我们不用单独再给其它字段加索引,使用已知的索引就可以加速查询,这种方式感觉很屌. 原文:http://blog.csdn.net/bruce128/article/details/17426671

MySQL多表更新的一个坑

简述 MySQL支持update t1,t2 set t1.a=2;这种语法,别的关系数据库例如oracle和sql server都不支持.这种语法有时候写起来挺方便,但他有一个坑. 测试脚本 drop database fander; create database fander; use fander; create table t1(a int); create table t2(a int); insert into t1 value(1); select * from t1; upda

MySQL表更新操作

1.  使用insert语句向表插入一条新记录,语法是:insert into 表名 [(字段列表)] values(值列表). 2.  使用set 语句更新操作与字符集,例如setcharacter_set_client =latin1\gbk\utf8; 3.  使用delete语句删除表记录,例如delete from 表名 where 条件表达式: 4.  使用insert语句可以一次性地向表中批量插入多条记录,语句是:insert  into 表名 [(字段名)]values (值列表

MySQL联合多表更新和删除

多表更新 在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改. 如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行将以指定的次序被更新.这实际上只有连同 LIMIT 一起才有用. 从 MySQL 4.0.4 开始,你也可以执行一个包含多个表的 UPDATE 的操作: UPDATE items,month SET items.price=month.price WHERE items.id=month.id; 注意:多表

mysql中两表更新时产生的奇葩问题,产生死锁!

如下一个两表更新语句 UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3_6=b.f07_1,a.gk07_4_6=b.f08_1  where   substring(a.gk01,1,4) in ('5323') and a.gk01=b.gk01 and dqdm='532300' 如果漏掉了where会怎么样: UPDATE hzxm201610 a,xmhzy

如何使用MySQL一个表中的字段更新另一个表中字段

这篇文章主要介绍了如何使用MySQL一个表中的字段更新另一个表中字段,需要的朋友可以参考下 1,修改1列 ? 1 2 3 update student s, city c set s.city_name = c.name where s.city_code = c.code; 2,修改多个列 ? 1 2 3 update a, b set a.title=b.title, a.name=b.name where a.id=b.id ?子查询 ? 1 update student s set ci

Mysql的跨表更新

本文介绍mysql多表 update在实践中几种不同的写法. 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%. 在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式: 复制代码 代码如下: UPDATE product p, productPrice pp SET