MYSQL支持不支持 update from语句?在mysql里如何进行表间数据更新?

2011-05-24 15:45:28 作者:admin 来源: 浏览次数:0 网友评论 0

mssql 子查询更新 update log set uin= b.uin from log a,logs b where a.accountuin =  b.accountuin

mssql 子查询更新 update log set uin= b.uin from log a,logs b where a.accountuin =  b.accountuin

mysql 不支持 update 子查询更新

找了半天资料 终于搞定了...

update `log` a inner join `logs` b on a.`accountuin` = b.`accountuin` set a.`uin` = b.`uin` where a.`accountuin` = b.`accountuin`

这样就能 将查询出来的字段批量更新过去了...


另:
有两个表,结构如下:

a(id,sex,email,public)

b(id,depart,salary)

由于需求改变,要为 b 也增加一个 public 字段,并且和 a 表中 id 相同的记录中的 public 的值相同。

加一个字段比较容易,直接 alter就行了,但是表间更新数据以前没做过,就google 之,结果发现很多人都是这么写的:

UPDATE b SET public=a.public FROM a WHERE b.id=a.id

但是在Mysql 下面死活不好使,总是提示有错误,后来查了一下资料,发现 mysql 不支持 update 里面有 from 子句,网上很多人写的可能都是针对 sqlserver 或其他数据的。改写SQL 如下:

UPDATE b,a SET b.public=a.public WHERE b.id=a.id

学到一点东西,记录在此。

关键词:MYSQLupdate

[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]

  • 验证码:

最新图片文章

最新文章