mysql update不能直接使用select的结果

Posted 宝贝企鹅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql update不能直接使用select的结果相关的知识,希望对你有一定的参考价值。

在sql server中,我们可是使用以下update语句对表进行更新:
update a set a.xx= (select yy from b) ;
但是在mysql中,不能直接使用set select的结果,必须使用inner join:
update a inner join (select yy from b) c set a.xx = c.yy

 
例:
update mb_tariff a inner join   
mb_tariff_temp b  set a.payment =  b.payment 
where a.mybus_id = b.mybus_id 
and a.tariff_id = b.tariff_id 
 
 
 
自行示例:
UPDATE USER INNER JOIN (SELECT id,account FROM USER) c SET user.phone=c.account WHERE user.id = c.id

 

以上是关于mysql update不能直接使用select的结果的主要内容,如果未能解决你的问题,请参考以下文章

update不能直接使用select的返回结果

MySql UPDATE更新语句备忘

MySQL的SELECT.FOR UPDATE究竟起啥作用

mysql怎么update一个值为null?

Mysql insert into select , update select 操作

mysql update语句不能在先查后更新