我正在使用 Kohana 框架,我需要将列名转换为小写。我无法控制数据库表结构。我想做以下事情:
SELECT LOWER(*) FROM .....
但是MYSQL不喜欢那样。如果我不知道列名是什么,那么输出小写列名的正确方法是什么?
最佳答案
在这里找到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;
关于mysql - 使用 SELECT 时的小写列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7366204/