MSYQL中无法用以变量来表示表名,列名。可以通过prepare 对预先准备好的字符串以SQL语句来执行。参考一下手册中关于 prepare / execute 的介绍和例子。
解决方案 »
- 为什么用optimize优化表却提示 Table does not support optimize, doing recreate + ...
- 这个查询郁闷我两天了.请教大家.
- 多条结果根据条件组合成一条
- mysqlgroup效率问题
- 我从网上下载了一套OA系统,用的是mysql数据库,我想在表中新增几个字段,可是看不到里面的表,用什么工具看?
- 数据如何恢复,我的系统重装了,但是mysql/data目录的数据文件还在,我重安装了mysql,该如恢复这些数据
- mysql++是什么东西啊?不好意思,本人对于mysql不熟悉,可能问了个很菜的问题
- 数据库迁移问题??
- 怎么指定客户端端口号?
- 求水电费
- 在一个条件的两个值,选择一个非空查询
- mysql数据库服务启动成功但是 命令提示找不到
CREATE PROCEDURE test(in tb_num int)
BEGIN
set @tbname=concat(tb,tb_num)#这里把表明拼成字符串
set @sqlcmd=concat('select count(*) from ',@tbname)#这里把sql语句也拼成了字符串prepare stmt from @sqlcmd;#这里是把字符串准备成可以执行的sql语句
execute stmt;#执行
DEALLOCATE PREPARE stmt;END
prepare有没有写错我忘记了。如果不行,你百度下就可以了。