发现了个mysql傻逼的地方,一直用oracle,感觉这个情况下mysql就是傻逼
看了一下前辈的文章
https://blog.csdn.net/z_youarethebest/article/details/53785487
不能先select出同一表中的某些值,再update这个表(在同一语句中)
错误的语句
UPDATE
cold_sys_address
SET
isdefault = '0'
WHERE userid =
SELECT
d.userid
FROM
cold_sys_address d
WHERE d.`id` = '4799990471714')
AND `type` = '3'
外面套了一层 把他骗过去了,这其实还是同一张表的嘛 ,mysql傻逼
UPDATE
cold_sys_address
SET
isdefault = '0'
WHERE userid =
(SELECT
userid
FROM
(SELECT
d.userid
FROM
cold_sys_address d
WHERE d.`id` = '4799990471714') t)
AND `type` = '3'