mysql 存储过程 数据库表名字段作为参数传递给存储过程的方法 10
展开全部
更多追问追答
追问
set l_sql=CONCAT_WS(' ','select min(id) from',in_table); 字符串拼接完 我执行这条语句 报Unknown column 'data' in 'field list' 但我是有这个表的
追答
你的表名叫field list?
展开全部
直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接sql语句,再用exec执行。例如:
CREATE PROCEDURE [proc_test]
(@tablename varchar(100))
WITH
EXECUTE AS CALLER
AS
declare @sql varchar(1000);
set @sql='select * from '+@tablename
exec(@sql)
GO
再直接执行 exec proc_test '学生表'
CREATE PROCEDURE [proc_test]
(@tablename varchar(100))
WITH
EXECUTE AS CALLER
AS
declare @sql varchar(1000);
set @sql='select * from '+@tablename
exec(@sql)
GO
再直接执行 exec proc_test '学生表'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表名字段为name的话
用POST的话就是这样取$_POST['name']
用GET同理一样
用POST的话就是这样取$_POST['name']
用GET同理一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
BEGIN
SET @sqlStr:=CONCAT("select * from ",c);
PREPARE stmt from @sqlStr;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
c是你传进来的值的变量IN `c` varchar(100)
SET @sqlStr:=CONCAT("select * from ",c);
PREPARE stmt from @sqlStr;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
c是你传进来的值的变量IN `c` varchar(100)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询