MySQL以大写形式返回所有列名

时间:2016-02-23 12:42:16

标签: php mysql sql select

我有SQL查询,只是为了简化它,想象在表用户中有列idnamepass,我希望数据库以大写形式返回这些列名,如ID, NAME,PASS。我知道我可以A)重命名数据库中的列B)像大写一样选择它 SELECT ID,NAME,PASS FROM users ...但我需要像这样使用它:SELECT * FROM users。我尝试使用像SELECT UPPER(*) FROM users这样的东西,但它给了我语法错误。

澄清一下:我需要大写的名称列,而不是列值!

我的解决方案:
经过多次尝试后,我在获取结果后通过PHP完成了它。猜猜它比较容易,所以我调用了函数array_change_key_case,它在满意的键情况下返回数组的键(显然这个数组的键也是列名)

2 个答案:

答案 0 :(得分:5)

要以大写形式检索特定表的所有列名,可以使用以下查询:

SELECT UPPER(`COLUMN_NAME`) 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
AND `TABLE_NAME`='yourtablename';

如果要在select查询的某个结果集中获取大写列名称,则必须以大写形式创建列,或者可以在php脚本中将它们置于高位,但是无法生成它们在结果集中以大写形式动态显示所有列。

答案 1 :(得分:0)

sql中没有办法使用select * ...在结果集中自动大写字段名称,除非你在create table本身中将它们定义为大写。

但是,在php中,您可以动态创建select语句,该语句使用information_schema.columns table查询表的所有字段名称,并将列名称以allcap格式放入sql语句中,或者在输出时将其格式化php中的字段名称。