[英]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.