2010-11-05 93 views
10

我正在運行一個查詢,該查詢將返回FULLTEXT索引表中的列的列表。該表格是MyISAM格式,我將使用PHP來構建查詢。顯示錶FULLTEXT索引列

理想情況下,我會運行查詢,它會返回信息,所以我可以構造一個逗號分隔的字符串的列。

例如「first_name,last_name,email」

這在MySQL中可能嗎?

回答

20

您可以從information_schema.STATISTICS表中獲取該信息。

我給你查詢來獲取表中所有列在一個或多個FULLTEXT索引中的列,因爲我認爲這就是你所要求的。請記住,每個FULLTEXT索引中列的特定組合非常重要。 MySQL不能使用FULLTEXT索引來搜索多個列,除非有一個包含所有列的FULLTEXT索引。

這裏,讓你要求輸出的第一個查詢:

select group_concat(distinct column_name) 
from information_schema.STATISTICS 
where table_schema = 'your_db' 
and table_name = 'your_table' 
and index_type = 'FULLTEXT'; 

而這裏的一個,顯示列的FULLTEXT indexe各種組合,如果有超過1桌子上:

select index_name, group_concat(column_name) as columns 
from information_Schema.STATISTICS 
where table_schema = 'your_db' 
and table_name = 'your_table' 
and index_type = 'FULLTEXT' 
group by index_name; 
+0

太好了,我以前一直盲目忽略那個information_schema數據庫,現在你已經把我的眼睛打開了一個可能性的世界! – th3hamburgler 2010-11-05 16:48:16

0

這裏的另一種方式:

SHOW CREATE TABLE [database_name].[table_name] 

替換方括號中的佔位符w^ith你自己的價值觀。

細讀FULLTEXT行的輸出。