mysql不允许变量直接作为字段名或表名进行查询
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网络空间、营销软件、网站建设、武陵网站维护、网站推广。
所以只能通过创建sql语句的方式实现
SET @province = '地区';
SET @strsql = concat('SELECT Fld1 AS ',@province,' FROM zgqy_2002_2;');
PREPARE stmt FROM @strsql;
EXECUTE stmt;
你是要查询结果显示未知、男或女而不是0、1、2是吧。
sql如下查询即可:
select case sex when '0' then '未知' when '1' then '女性' when '2' then '男性' end from user;
SELECT username name FROM `user` "username"是原字段名称, 这个"name"就是别名~
老弟你这需求估计也是没多大用处,首先软件表示跟sql传输表示有区别的。
-------------------------------------------------------------------------------------------
如果你要做的话,方案我有两个,第一个是预处理语句
你 谷歌 -》mysql 预处理语句
--------------------------------------------------------------------------------------------
一般类似
PREPARE STMT_Edwin FROM ‘SELECT ? as ? from 表’ ;
SET @A=表字段写上;
SET@B=别名写上; --你的是工号
EXECUTE STMT_Edwin USING @A,@B;
----------------------------------------------------------------------------
另一种思路是临时表
declare @tb table(
编号 int,
工号 [nvarchar](50)
);
insert into @tb
select PM.auto_id,PM.PID from 表;
select * from @tb
------------------------------------------------------
如上在SqlServer下通过,mysql也一样,调试调试改改就行!
然后就是
编号 工号
1 U12
2 U22
这样的显示!
-----------------------------------------------------------------------