背景:A 这张表的user_id 是user这整表的partner_id ,现在需要使用user的主键id
正常的sql
UPDATE A old set user_id = (SELECT id FROM user WHERE partner_id = old.user_id);
但是在开发环境去刷数据的时候,由于脏数据特别多,会出现赋值为null的情况,就是
SELECT id FROM user WHERE partner_id = old.user_id
查出来的是null导致刷数据不成功,像这种脏数据我处理的是,查不到直接赋值为0,反正也是脏数据。所有可以使用下面的sql去刷数据了:
UPDATE A old
SET user_id = (
SELECT
IFNULL( ( SELECT id AS uId FROM user WHERE partner_id = old.user_id ), 0 ));