簡體   English   中英

使用SELECT時的小寫列名稱

[英]Lower case column names when using SELECT

我正在使用Kohana框架,我需要將列名轉換為小寫。 我無法控制db表結構。 我想做以下事情: 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM