mysql 替换数值
好像我有一张表table有一个字段a(a会出现下面的四种值)a1:100000;1:110000;2:120000;3:130000;1:140000;2:150000;...
好像我有一张表 table 有一个字段 a (a会出现下面的四种值)
a
1:100000;
1:110000;2:120000;3:130000;
1:140000;2:150000;
1:160000;2:150000;3:120000;4:190000;
希望有用语句把全部里面的那些6位数的值全部都加100 变成下面这样
a
1:100100;
1:110100;2:120100;3:130100;
1:140100;2:150100;
1:160100;2:150100;3:120100;4:190100; 展开
a
1:100000;
1:110000;2:120000;3:130000;
1:140000;2:150000;
1:160000;2:150000;3:120000;4:190000;
希望有用语句把全部里面的那些6位数的值全部都加100 变成下面这样
a
1:100100;
1:110100;2:120100;3:130100;
1:140100;2:150100;
1:160100;2:150100;3:120100;4:190100; 展开
展开全部
这个用存储过程实现起来简单,你要用sql直接实现就比较复杂,mysql里面没有split
现在讨论最笨最简单的方法:(前提是你的这个表里面这4种值是不变而且是唯一的)
update table set a = '1:110100;2:120100;3:130100' where a = '1:110000;2:120000;3:130000'
哈哈,不管分给不给,这是一个有趣的讨论。
现在讨论最笨最简单的方法:(前提是你的这个表里面这4种值是不变而且是唯一的)
update table set a = '1:110100;2:120100;3:130100' where a = '1:110000;2:120000;3:130000'
哈哈,不管分给不给,这是一个有趣的讨论。
更多追问追答
追问
那麻烦给一下存储过程如何实现
追答
CREATE PROCEDURE key_replace(add_value int)
BEGIN
DECLARE spec_line,tran_line text DEFAULT '';
DECLARE done,lp_cur,lp_len int default 0;
DECLARE cur1 cursor for select a from table;
DECLARE CONTINUE HANDLER for NOT FOUND SET done = 1;
BEGIN
OPEN cur1;
do_loop: LOOP
SET done = 0;
FETCH cur1 INTO spec_line;
IF done = 1 THEN
LEAVE do_loop;
END IF;
SET lp_cur = 0;
SET lp_len = char_length(spec_line) - char_length(replace(spec_line,';',''));
SET tran_line = '';
inn_loop: LOOP
IF lp_cur > lp_len THEN
LEAVE inn_loop;
END IF;
SET spec_key = substring_index(substring_index(spec_line,';',lp_cur),';',-1);
SET lp_cur = lp_cur + 1;
SET tran_line = CONCAT(tran_line,substring_index(spec_key,':',1),':',CAST(substring_index(spec_key,':',-1) AS SIGNED) + add_value,';');
END LOOP inn_loop;
UPDATE table SET a = tran_line WHERE a = spec_line;
END LOOP do_loop;
CLOSE cur1;
END
2014-06-26
展开全部
你的这些数据 一行是一个字段里的数据 还是 每一个分号 表示一条记录啊……
重新表述一下 否则 神仙也不知道 咋做呢!呵呵
重新表述一下 否则 神仙也不知道 咋做呢!呵呵
追问
是一行是一个字段里的数据
追答
看你现在的这些数据哦 真的觉得 是在滥用数据!给自己找麻烦……
以后 要记得 把每一个单独的数据放在一列里边 即你要设置足够多的字段来放置你这些数据 才能更好的发挥数据库的计算作用……否则 你这就是一个文本文档 的东西了……在数据库里边来处理这样的数据 还不如在excel里边处理的容易……
所以 你的这个的 处理起来麻烦滴啦!逐条处理吧 想用一次 更新有点儿难度……我一时还没有想好,你先等其他朋友来做吧 如果 过些时间 没有人来做 我再帮你做一下……实在意义不大 还费时间……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |