码迷,mamicode.com
首页 > 数据库 > 详细

mysql update select 用法

时间:2018-02-01 17:30:36      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:user   mysq   from   为什么   serve   log   join   sele   rom   

之前用SqlServer , update语句对表进行更新:
update a set a.xx= (select yy from b) ; 是可以的
但是在mysql中,不能直接使用set select的结果,

UPDATE ecs_users_copy
SET `user_name` = (
SELECT
`identity_card`
FROM
ecs_users_copy
WHERE
LENGTH(identity_card) = 18
AND LENGTH(user_name) != 18
)

这是错误的做法!

必须使用inner join:

demo1

update a inner join (select table from b) c set a.id = a.id where a xxx 

demo2

UPDATE ecs_users_copy as a
INNER JOIN (SELECT `identity_card`,`user_name` FROM ecs_users_copy) b
SET a.user_name = a.identity_card
WHERE
a.user_id =a.user_id and (LENGTH(a.identity_card) = 18
AND LENGTH(a.user_name) != 18)

用到的东西越多就越容易混淆~~

写了一个星期Java , 再写回 php  

\Exception e

, 突然发现为什么会不行,原来是php的异常是有$的~~~ 而Java没有~~~

 

mysql update select 用法

标签:user   mysq   from   为什么   serve   log   join   sele   rom   

原文地址:https://www.cnblogs.com/wtcl/p/8398996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!