我写了一个存储过程,用来获取总行数.
create procedure countNum(out allPages int)
begin
select count(*) into allPages from tempTable;
end;然后通过
call countNum(@abc);
select @abc;
可以得到当前查询的所有行数.但是我想动态的对表进行查询,就修改了存储过程为:
create procedure countNum
(
in tbName varchar(100),
out allPages int
)
begin
set @sqlStr = CONCAT('select count(*) into allPages from ',tbName);
prepare sqlstmt from @sqlStr;
execute sqlstmt;
deallocate prepare sqlstmt;
end;
这样在执行时又会报变量allPages没有定义的错误.请问下,该如何写才能实现动态的对表进行统计行数呢?
create procedure countNum(out allPages int)
begin
select count(*) into allPages from tempTable;
end;然后通过
call countNum(@abc);
select @abc;
可以得到当前查询的所有行数.但是我想动态的对表进行查询,就修改了存储过程为:
create procedure countNum
(
in tbName varchar(100),
out allPages int
)
begin
set @sqlStr = CONCAT('select count(*) into allPages from ',tbName);
prepare sqlstmt from @sqlStr;
execute sqlstmt;
deallocate prepare sqlstmt;
end;
这样在执行时又会报变量allPages没有定义的错误.请问下,该如何写才能实现动态的对表进行统计行数呢?
解决方案 »
- 一个数据表里的float类型问题
- 用MYSQL给表添加值
- 查询语句优化
- MySQL数据(新建表等)的默认存储路径修改?
- mysql中为什么不能使用top *类似这种的大范围的查询?
- mysql怪问题:不能输入中文。
- 在那里设置MYSQL可使用的最大内存,我的MYSQL闲着内在不用去用虚拟内存
- 请教
- show processlist 中的连接数数量 比 mysql数据库连接池最大连接数的限制要多
- mysql-proxy 读写分离
- *****??? 针对 mysql 5.x 接口 c++ 接口 mysqlpp 2.1 存在严重得内存泄漏,不知道那位有 办法修复吗???
- 高手请进,求改写一个存储过程
(
in tbName varchar(100),
out allPages int
)
begin
set @sqlStr = CONCAT('select count(*) into @allPages from ',tbName);
prepare sqlstmt from @sqlStr;
execute sqlstmt; set allPages = @allPages; deallocate prepare sqlstmt;
end;
(
in tbName varchar(100)
)
begin
set @sqlStr = CONCAT('select count(*) from ',tbName);
prepare sqlstmt from @sqlStr;
execute sqlstmt;
deallocate prepare sqlstmt;
end;
create procedure countNum
(
in tbName varchar(100),
out allPages int
)
begin
set @sqlStr = CONCAT('select count(*) into @allPages from ',tbName);
prepare sqlstmt from @sqlStr;
execute sqlstmt;set allPages = @allPages;deallocate prepare sqlstmt;
end;为正确答案,谢谢 习习