2010-11-05 29 views
10

FULLTEXT dizine eklenmiş bir tablodaki sütunların listesini döndürecek bir sorguyu çalıştırmak istiyorum. Tablo MyISAM formatındadır ve sorguyu oluşturmak için php kullanacağım.Tabloları göster FULLTEXT dizinli sütunlar

İdeal olarak sorguyu çalıştırırdım ve bilgileri döndürür, böylece sütunların virgülle ayrılmış bir dizesini oluşturabilirim.

örn. "first_name, last_name, email"

Bu, MySQL'de mümkün mü?

cevap

20

Bu bilgileri information_schema.STATISTICS tablosundan alabilirsiniz.

Tabloda tüm sütunları bir veya daha fazla FULLTEXT dizininde bulunan sorguları size vereceğim, çünkü bu sizin istediğiniz şeyi düşündüğümden. Her bir FULLTEXT endeksindeki belirli kolon kombinasyonlarının çok önemli olduğunu unutmayın. MySQL, tüm sütunları içeren tek bir FULLTEXT dizini olmadıkça birden çok sütun aramak için bir FULLTEXT dizini kullanamaz.

Burada istedi çıkış verir ilk sorgu var:

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

Ve burada masaya 1'den fazla varsa fulltext indexe sütunların çeşitli kombinasyonlarını gösterir biri:

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; 

SHOW CREATE TABLE [database_name].[table_name] 

w parantez tutucuları değiştirin: İşte

+0

Thats great, ben her zaman daha önce bu information_schema veritabanını göz ardı ettim, şimdi gözlerimi bir olasılık dünyasına açtın! – th3hamburgler

0

başka bir yolu kendi değerlerin.

FULLTEXT hatları için çıkışı kullanın.