MySQL的存储过程如何让列名做变量 大家好,我在写一个MySQL的存储过程,我想让将列名设为存储过程中变量,然后根据列名的不同来进行查询,请问大家,其相关的语法是什么呢,请诸位指点迷津。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有办法,MYSQL并不支持select @varColumnName from table你只能用@sql = concat ("select " , @varColumnName, " from table1)prepare stmt from @sql;execute @sql这种方法。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html 只能用动态生成SQL语句,再执行的方法 再多问一句,如果用Update语句,是不是应该这样写@sql = concat ("update" ,table, " set @varColumnName=value)prepare stmt from @sql; execute @sql @sql = concat ("update table set ",@varColumnName, "=123"); concat 是字符串加运算。你可以参考一下手册中的说明和例子。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html @varColumnName:字段名?@sql = concat ("update" ,table, " set ',@varColumnName,'=',value)注意字段类型 字符型:@sql = concat ("update" ,table, " set ',@varColumnName,'="',value,'"') 那个@sql在最开始定义时,怎样写好呢 字符型: @sql = concat ("update" ,table, " set ',@varColumnName,'="',value,'"') 引号应该是有问题的 @sql = concat ("update" ,table, ' set ',@varColumnName,'="',value,'"') 你的table 是变量还是表名?@sql = concat ('update table set ',@varColumnName,'=\'AABB\'') 我现在的语句是set @sql=concat("update",ufield_info,'set',@depname,'="',10,'"');结果是错误的 正确写法应是set @sql=contact('update tablename','set',@depname,'",value,"')再次谢谢所有回帖的朋友们 创表出错。错误代码:1101 软件打包发布问题 在PHP中,mysql的模糊查询语句是怎么写的啊???有劳各位大虾咯 关于MYSQL触发器的问题 MySQL 4.1-alpha 如何更改表的character_set? 谁有EMS PostgreSQL Manager professional 1.3.1.1和crack? MYSQL 事务,FOR UPDATE 导致表锁 mysql实现层级查询,类似oracle里的connect by prior mysql数据库性能优化方法 安装MySQL遇到问题,希望有人解决 谁能帮我精简一下sql语句?? 编号很多,如何查询某一条编号的最后一条记录
你只能用@sql = concat ("select " , @varColumnName, " from table1)
prepare stmt from @sql;
execute @sql这种方法。
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
@sql = concat ("update" ,table, " set @varColumnName=value)
prepare stmt from @sql;
execute @sql
@sql = concat ("update" ,table, " set ',@varColumnName,'=',value)
注意字段类型
@sql = concat ("update" ,table, " set ',@varColumnName,'="',value,'"')
@sql = concat ("update" ,table, " set ',@varColumnName,'="',value,'"') 引号应该是有问题的
@sql = concat ("update" ,table, ' set ',@varColumnName,'="',value,'"')
set @sql=concat("update",ufield_info,'set',@depname,'="',10,'"');结果是错误的
set @sql=contact('update tablename','set',@depname,'",value,"')
再次谢谢所有回帖的朋友们