create procedure pdemo
BEGIN
DECLARE cur1 CURSOR FOR SELECT p1 FROM table;
loop
fetch cur1 into @a;
begin
DECLARE cur2 CURSOR FOR SELECT id,@a FROM table;
..
..
end;
..
END;
我得结果这样
SELECT id,@a FROM table; //假设 @a=name
就相当于 SELECT id,'name' FROM table;
结果就是: 1 name
2 name
但是我像让它成为真正的列,是否有方法 ,谢谢
BEGIN
DECLARE cur1 CURSOR FOR SELECT p1 FROM table;
loop
fetch cur1 into @a;
begin
DECLARE cur2 CURSOR FOR SELECT id,@a FROM table;
..
..
end;
..
END;
我得结果这样
SELECT id,@a FROM table; //假设 @a=name
就相当于 SELECT id,'name' FROM table;
结果就是: 1 name
2 name
但是我像让它成为真正的列,是否有方法 ,谢谢
我知道游标是取记录循环分析,
我是说。
SELECT id,@a FROM table;这条语句出来结果是
1 john
2 tom
这样的,而不是直接把字符串name给我弄出来、。
然后再循环里面处理,if @a = 'name' then .........
DECLARE cur2 CURSOR FOR SELECT * FROM tt;
...
set @asql=concat('create table tt as SELECT id,',@a,' FROM table');
prepare stml from @asql;
execute stml;
...
语法要求
mysql> SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> PREPARE stmt2 FROM @s;
mysql> SET @a = 6;
mysql> SET @b = 8;
mysql> EXECUTE stmt2 USING @a, @b;
+------------+
| hypotenuse |
+------------+
| 10 |
+------------+
mysql> DEALLOCATE PREPARE stmt2;
PREPARE stmt2 FROM @s;