想请教下
delimiter//
create procedure cps()
begin
declare table_user varchar(200) default 'user';
set strSql = concat('select * from ',table_user);
prepare a from strSql;
execute a;
end//
这个过程 有错误,我没写过过程,怎么处理执行字符串啊????还请各位高人指点。
delimiter//
create procedure cps()
begin
declare table_user varchar(200) default 'user';
set strSql = concat('select * from ',table_user);
prepare a from strSql;
execute a;
end//
这个过程 有错误,我没写过过程,怎么处理执行字符串啊????还请各位高人指点。
解决方案 »
- MySQL WorkBench执行SQL脚本时,报错MySQL server has gone away
- mysql中实现mssql str()功能函数是?
- 求教EMS SQL Manager Lite for Mysql
- 对birthDay 日期 字段求 21年前的所有记录
- 如何把 EXCEL的内容导入mysql?
- 在线等待,mysqldump在mysql5.0中无法备份存储过程和触发器
- 有谁清楚 像百度 那样的西文系统 怎样实现关键字 分割 和查询
- 再次请教各位大侠!怎样将myisam类型的表转换成InnoDB 表类型
- 公司要做出选择:Percona或者MariaDB
- 按uidList顺序如何批量得到返回按照原有顺序得到UserList
- 一个很复杂的调查问卷数据库设计
- 关于模糊匹配的问题
prepare a from @strSql;
execute a;
不过 为什么在prepare中需要呢,不太明白
mysql> SET @a = 3;
mysql> SET @b = 4;
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
| 5 |
+------------+
mysql> DEALLOCATE PREPARE stmt1;
你的问题解决的办法,这样也行。
是的,如果是过程内的局部变量不需要@,@开头的变量是SESSION变量。 而你用了prepare则需要使用SESSION级的变量,不能使用局部变量。delimiter//
create procedure cps()
begin
declare table_user varchar(200) default 'user';
set @strSql = concat('select * from ',table_user);
prepare a from @strSql;
execute a;
end//