book内容:
id |
name |
appraisal |
1 |
max |
A |
2 |
max |
B |
3 |
kelongmao |
C |
4 |
zero |
D |
5 |
kelongmao |
E |
6 |
max |
F |
7 |
zero |
G |
8 |
kelongmao |
H |
9 |
zero |
I |
book2 内容:
id |
name |
appraisal |
1 |
max |
ABF |
2 |
zero |
DG |
3 |
kelongmao |
CEH |
create table book(
id int primary key,
name varchar(20),
appraisal varchar(20)
);
create table book2(
id int primary key,
name varchar(20),
appraisal varchar(20)
);
insert into book values(1, 'max', 'A');
insert into book values(2, 'max', 'B');
insert into book values(3, 'kelongmao', 'C');
insert into book values(4, 'zero', 'D');
insert into book values(5, kelongmao, 'E');
insert into book values(6, 'max', 'F');
insert into book values(7, 'zero', 'G');
insert into book values(8, 'kelongmao', 'H');
insert into book values(9, 'zero', 'I');
用Sql实现,将book的评论合并,填写到book2表中:
实现方案: mysql 存储过程
测试环境: mysql 数据库
存储过程如下:
DROP PROCEDURE IF EXISTS getUserInfo $$
BEGIN
declare _name1 varchar(20);
declare _app1 varchar(20);
declare _name2 varchar(20);
declare _app2 varchar(20);
declare _app3 varchar(20);
declare _app4 varchar(20);
DECLARE rs_cursor CURSOR FOR select * from book order by name;
open rs_cursor;
cursor_loop:loop
FETCH rs_cursor into _id1, _name1, _app1;
set count = count - 1;
if _name2 is NULl then
set _app2 = _app1;
set _app3 = _app1 ;
elseif STRCMP(_name2 , _name1)<>0 then
set _name2 = _name1;
set _app3 = _app1 ;
else
end if;
if count < 1 then
end if;
end loop cursor_loop;
close rs_cursor;
END$$