2011-01-18 70 views
2
之外的所有表名稱

好吧,我知道你可以通過以下操作獲取所有的列名。mysql選擇除

SHOW COLUMNS FROM person; 

但是,它不允許where語句。

有什麼辦法可以得到完整列表,只是不說這個嗎?

所以我基本上是在尋找這樣的事情:

select (show columns from person where Field <> 'id') from person 
+0

我上用mysql 4不5. – David 2011-01-19 13:40:05

+0

這將是知道:)它就像使用SQL Server 7.0,我們需要挖掘出超級忍者權力有用的系統。 – RichardTheKiwi 2011-01-19 18:51:17

回答

3

使用SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
例子:

SHOW CHARACTER SET WHERE`默認collat​​ion` LIKE '%日本人%';

More about show here

試着這麼做SHOW COLUMNS FROM person WHERE column != 'value';

+0

我敢於將格式反引號格式設置爲正確的格式:-) – Axarydax 2011-01-18 22:41:38

+0

顯示列...與任何地方無效;至少對於我來說。 – David 2011-01-19 13:33:37

3

或者你也可以對INFORMATION_SCHEMA

select * from information_schema.columns 
where table_schema = 'test' # your db name 
and table_name = 'person ' 
and column_name != 'id' 

正確使用SQL查詢對於MySQL ,您可以像使用,而不是直接的WHERE http://dev.mysql.com/doc/refman/4.1/en/show-columns.html

SHOW COLUMNS FROM 'Person' LIKE '%x%' 

然而不幸的是,不支持NOT條款。

如果我可以建議

  • 如果需要從 MySQL的控制檯/ phpAdmin /當量這一信息, 只是眼球吧..
  • 如果你需要這個 從像PHP前端程序,從那個環境做 。
0

在MySQL 4.您不能執行真正的SHOW COLUMNS WHERE該文檔僅顯示一個可選LIKE參數,該版本:http://dev.mysql.com/doc/refman/4.1/en/show-columns.html

但是,您可以使用元數據庫INFORMATION_SCHEMA。

USE information_schema; 
SELECT * FROM `COLUMNS` WHERE `TABLE_NAME` = 'person' AND `COLUMN_NAME` != 'value';