关于一个mysql存储过程的问题

现有一个存储过程:

BEGIN

DECLARE s int DEFAULT 0;
DECLARE mid VARCHAR(10);  
DECLARE realname VARCHAR(20);
DECLARE mobile VARCHAR(20);
DECLARE email VARCHAR(50);

DECLARE user CURSOR FOR select id, realname, mobile, email from tb_user where status = 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1;

open user;
fetch user into mid, realname, mobile, email;
    WHILE s<>1 DO
            
    UPDATE tb_b set title = REPLACE(title,mobile,'*') where uid = mid;

    fetch user into mid, realname, mobile, email;
    END WHILE;
close user;
END

循环中的update语句中,replace替换,会把整个标题替换成空值,我是想只把title字段中的mobile替换成*。这里的mobile是结果集的值,该怎么写呢(tb_user表中的id也是VARCHAR类型)?

目前执行这个存储过程,会把所有tb_b表中的title字段都替换为空值。求教正确的该怎么写?

按理说你这个 where uid = mid; 加了的话 应该不会出现这种情况,
你的uid 值都是唯一的吧?

现在replace把title全部替换为空值,也是不对的,title中的内容可能是这样:“这里是作者1381111111的标题”,我只是要把这个字段里的13811111111替换成*,但现在直接被替换成了NULL