2013-10-14 16 views
2

我正在研究一個實用程序,該實用程序公開具有機器生成的表/列名稱的倉庫中的數據。允許用戶爲表格/列指定新名稱以使結果更有意義。別名可以是任何有效的MySQL標識符名稱,但是我發現包含前導空格的列名稱存在問題。現在我知道這將是一個愚蠢的列名,但我不希望對用戶施加任何限制,只是因爲我很懶,找不到正確的方式來做某件事。具有前導空格的列別名會導致錯誤:未知列'BAR。 COL1'在'字段列表中'

這個簡單的SQL語句重新產生此問題:

SELECT ` COL1` FROM (SELECT 1 AS ` COL1`) BAR 

錯誤代碼:1054未知列 'COL1' 中的 '字段列表'

我缺少的東西?我正在使用MySQL 5.6.11。

+0

請注意,該查詢是成功的,但它不應該是(外部選擇中沒有前導空格):SELECT「COL1」FROM(SELECT 1 AS「COL1」)BAR – rkOliver

回答

0

你可以檢索表結構嗎?想看到表BAR的實際列名稱。 當您運行上面的查詢時,使用MSSQL修剪列名稱中的所有空格。

+0

BAR不是一個表,而是一個別名子查詢。此查詢不涉及實際的表格,可以重寫爲:SELECT'COL1' FROM(SELECT 1 AS'COL1' FROM DUAL)AS BAR – rkOliver

相關問題