注册 登录
编程论坛 MySQL论坛

如何将mysql查询结果的列名修改为另一表中的对应值?

lxhpq 发布于 2019-09-22 18:13, 4452 次点击
我有一个表T1,字段为A-1,A-2 A-3,类似这样的;
只有本站会员才能查看附件,请 登录

另外有一个表T2,两个字段 英文字段名,中文字段名;支是A-1 姓名;A-2 地址;A-3电话,类似这样的,
只有本站会员才能查看附件,请 登录


我希望按一定条件查询T1表格之后,查询结果的列名修改为T2中的中文名,
得到输出结果类似
只有本站会员才能查看附件,请 登录


因为列数很多,一个一个as太慢,而且查询的时候选的列有时候也不一样,大佬们有简单的办法么?求助
3 回复
#2
厨师王德榜2019-09-25 18:41
1 Select * from T2 ,并形成一个cursor
2 遍历这个cursor ,遍历时,形成一个 " a-1 as 姓名 , a-2 as 地址 , ... "的字符串,
3 执行这个字符串,查询结果中的列名称自然是新的名称.
4 至于每次查询取的列不一样, 理解了上述思路之后,
  在第1 步 Select * from T2 ... 这句话的Where 子句中下功夫.就能满足需求.
#3
lsy28861732020-04-22 10:21
如果是项目需要,我建议你不要在数据库上实现,在后端业务层面处理,先取出字段名,动态拼接成sql语句进行查询
不然你使用脚本语言,动态生成SQL语句
当然如果要在数据库上执行,你可以尝试下存储过程

[此贴子已经被作者于2020-4-22 10:22编辑过]

#4
my23182020-05-08 15:44
回复 楼主 lxhpq
在用户程序中实现比在SQL查询中实现简单快捷
1