现有一个存储过程:
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