永发信息网

mysql 字段名做参数

答案:3  悬赏:60  手机版
解决时间 2021-03-21 08:44
  • 提问者网友:愿为果
  • 2021-03-21 04:33
begin
declare v_column int;

set @sql=concat("select ",p_columnName," into v_column from seat_info");
prepare stmt1 from @sql;
execute stmt1;
deallocate prepare stmt1;
end
运行时提示v_column变量没定义,这是怎么回事啊
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-03-21 05:48
1、存储子程序不能包含SQL预处理语句(PREPARE、EXECUTE、DEALLOCATE PREPARE)。隐含意义:不能在存储子程序中使用动态SQL语句(其中,能够以字符串形式构造动态语句,然后执行它们)。从MySQL 5.0.13开始,对于存储程序放宽了该限制,但该限制仍适用于存储函数和触发程序。

2、mssql下的存储过程写法:
create proc proc_ @col varchar(30)
as
begin
declare @sql varchar(100)
set @sql='select ' + @col +' from table_name'
exec(@sql)
end
exec proc_ 'col_name'
全部回答
  • 1楼网友:神的生死簿
  • 2021-03-21 07:17
alter table liuyan change names username varchar(255);
  • 2楼网友:慢性怪人
  • 2021-03-21 07:04
存储过程?没用过mysql mssql下的存储过程写法: create proc proc_ @col varchar(30) as begin declare @sql varchar(100) set @sql='select ' + @col +' from table_name' exec(@sql) end exec proc_ 'col_name' 好像后面加上分号就是mysql了吧?哈哈 。。。不知道
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯