MySql IFNull()函数

背景: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 ));

你可能感兴趣的:(数据库)