2010-11-05 12 views
10

Czekam na uruchomienie zapytania, które zwróci listę kolumn w tabeli z indeksowaniem FULLTEXT. Tabela jest w formacie MyISAM i będę używać PHP do skonstruowania zapytania.Pokaż tabele z indeksowanymi kolumnami FULLTEXT

Najlepiej byłoby uruchomić kwerendę i zwrócił informacje, aby utworzyć ciąg znaków oddzielonych przecinkami.

np. "first_name, last_name, email"

Czy to możliwe w MySQL?

Odpowiedz

20

Możesz uzyskać te informacje z tabeli information_schema.STATISTICS.

Dam ci zapytanie, aby uzyskać wszystkie kolumny w tabeli, które są w jednym lub więcej indeksów FULLTEXT, ponieważ myślę, że o to prosisz. Należy pamiętać, że szczególne kombinacje kolumn w każdym indeksie FULLTEXT są bardzo ważne. MySQL nie może używać indeksu FULLTEXT do wyszukiwania wielu kolumn, chyba że istnieje jeden indeks FULLTEXT, który zawiera wszystkie te kolumny.

Oto pierwsze zapytanie, który daje wyjście prosiłeś:

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

A oto jeden, który pokazuje różne kombinacje kolumn w FULLTEXT indexe jeśli istnieje więcej niż 1 na stole:

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

To świetnie, zawsze ślepo zignorowałem bazę danych information_schema, teraz otworzyłeś moje oczy na świat możliwości! – th3hamburgler

0

Oto kolejny sposób:

SHOW CREATE TABLE [database_name].[table_name] 

Wymień zastępcze W nawiasach z twoimi własnymi wartościami.

Sprawdź wydruk dla linii FULLTEXT.