使用SELECT时的小写列名称

时间:2011-09-09 18:56:53

标签: mysql sql kohana

我正在使用Kohana框架,我需要将列名转换为小写。我无法控制db表结构。我想做以下事情: SELECT LOWER(*) FROM .....

但是MYSQL并不喜欢这样。如果我不知道列名是什么,那么输出小写列名的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

在此处找到http://dev.mysql.com/doc/refman/5.0/en/columns-table.html

SELECT LOWER(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Table'

下面你可以看到使用上面查询的列结果创建动态查询的MSSQL和MySQL语法。

MSSQL语法


DECLARE @ColumnNames [nvarchar](1024)

SELECT @ColumnNames = COALESCE(@ColumnNames + ', ', '') + LOWER(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table'

DECLARE @Sql [nvarchar](1024) = 'SELECT ' + @ColumnNames + ' FROM Table ' --Remember to put spaces after SELECT and before FROM

EXEC(@Sql)

通过这种方式,您可以动态构建查询,然后执行它。

MySQL语法


SELECT @ColumnNames := GROUP_CONCAT(LOWER(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table';

SET @Sql = CONCAT('SELECT ', @ColumnNames, ' FROM Table ');

PREPARE stmt1 FROM @Sql;
EXECUTE stmt1;