2010-11-05 3 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

Thats great, я всегда слепо игнорировал эту базу данных information_schema раньше, теперь вы открыли мне глаза на мир возможностей! – th3hamburgler

0

Вот еще один способ:

SHOW CREATE TABLE [database_name].[table_name] 

Заменить в квадратных скобках заполнители W с вашими собственными значениями.

Перспектива вывода для линий FULLTEXT.