回答

收藏

重命名SQL SELECT语句中的列

技术问答 技术问答 293 人阅读 | 0 人回复 | 2023-09-14

我想重命名SELECT表达式结果中的列。当然,以下操作无效:# b* F8 m# ~: A; A+ U5 Q% Y7 i$ B
SELECT * AS foobar_* FROM `foobar`6 o0 [% t% I( ]) f; j6 ?
由于我是SQL的新手,我想我只是缺少一个会导致答案的概念,工具或关键字。向正确方向的提示将不胜感激。谢谢!) A/ k1 Q( h% U- ?# w
更新+ {/ O* ]) W! l8 g
我正在寻找一种实现此目的的通用方法,并且特定于MySQL的技术绝对可以。2 S; ^1 B/ w' R# s& y5 K
简而言之,我正在编写一个工具,用于将MySQL查询的结果“导出”到Google Spreadsheets(通过Google Data6 w* F( N$ L. f3 V6 U
API)。有些查询是联接,因此为了使列唯一,我想在所有列名前加上各自的表名。, ~# }5 h& g! \
                , `2 f+ D; V. j- t
解决方案:
" z4 ^& b+ O' e               
  t# z" I+ R: q9 [/ m  g% y" y* H
( }$ `  Z/ U! M9 Q5 P6 K- g
# G+ G1 K. J. q                您可以将列名一个一个地别名,就像这样
8 P8 a# O% r) L% ~! i/ gSELECT col1 as `MyNameForCol1`, col2 as `MyNameForCol2` ! N) i! h. L! E
FROM `foobar`8 @/ o# d& ^- G. d
编辑 您可以INFORMATION_SCHEMA.COLUMNS像这样直接访问以 修改
# F! t/ b3 {( f9 B新的别名。但是,如何将其适合查询超出了MySql的技能
* v' Q; l  ]* U1 lselect CONCAT('Foobar_', COLUMN_NAME)/ r  t7 W5 @+ L/ c) U# l3 U, `4 Z
from INFORMATION_SCHEMA.COLUMNS
" {8 D$ ?& @$ v; l! Rwhere TABLE_NAME = 'Foobar'
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则