mysql技术–mysql中的多表关联更新(update)语句的用法

内容纲要

在开发中mysql的update语句我们经常会用到,通常的mysql技术用法如下:

update table1 set uid=5 where id=9;

但是有时候业务的需要,我们要更新的数据可能和其他表有关系,这时就要用到关联更新了.

现在模拟一个需求:

member表中有一个字段是记录了用户的发帖数num,content表中保存了所有用户的发帖内容,这两个表之间有uid互相关联,那当我们要更改member表中的num时,就要先查询content表中每一个用户的发帖数;

这个需要我们一般会分两步走:

1.查出某一用户的发帖数

2.更新该用户的发帖数量

但是如果所有的用户都需要更新,而且不考虑用存储过程中的循环来做有没有办法呢?以下是我的解决方案(终于到主题了<-_->!):

update member m

inner join (select count(uid) num1,uid from content ) c

on m.uid=c.uid set m.num=c.num1;

这样做有两个好处:一,避开存储过程中循环效率低的情况;二,代码量相对更少;

欢迎大家拍砖!

发表评论

邮箱地址不会被公开。 必填项已用*标注

1 + 9 =