2016-08-15 22 views
1

我想從MySQL中的特定表中獲取列名的列表。我運行:在MySQL信息模式中從表中選擇列名時出錯

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = `test 2.2` 
    AND table_schema = test 

的數據庫稱爲test和表名是test 2.2和語法的其餘部分看起來是正確的。不過,我不斷收到錯誤

錯誤代碼:1054未知列「測試2.2」中的「where子句」

有另一種方式,我可以做我想做的和/或怎麼辦我解決了這個錯誤?

+3

您的包裹價值在'裏面。您應該使用' – Mojtaba

回答

1

對象名稱(在這種情況下:一個表名)存儲在信息模式爲字符串文字,所以應該用單引號(')進行查詢:

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = 'test 2.2' AND table_schema = 'test' 
-- Here -----------^--------^--------------------^----^ 
1

使用引號,而不是反引號字符串

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = 'test 2.2' 
    AND table_schema = 'test' 
1
SELECT column_name 
FROM information_schema.columns 
WHERE table_name = "test 2.2" 
    AND table_schema = "test" 

或者說,你爲什麼不只是描述該表。

desc `test 2.2`; 
+0

因爲我正在嘗試獲取我可以從程序中獲取的列名稱列表。 'SHOW COLUMNS'和'DESCRIBE'都給我'Type,NULL,Default等'信息,我不想在我的程序中。 – ThoseKind