mysql - 使用 SELECT 时的小写列名

标签 mysql sql kohana

我正在使用 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/

相关文章:

php - 连接到 MySql DB (PHP) 时遇到问题

php - ->bind_global() 在 Kohana 3.3 中隐藏 View

php - Kohana 3 中的执行时间

php - MySQL 和 PHP 中的多行合并为一行

mysql - 在mysql的输出显示中添加PDT或PST

mysql - INNER JOIN 执行/评估顺序

mysql - 显示一行并获取具有相同 u_id 的总行数

php - 测试 SQL 查询的真假

php - kohana 3.2 上的多对多关系

java - 如何解决jsp页面中的这种错误?