Показать таблицы с индексированными столбцами FULLTEXT - PullRequest
10 голосов
/ 05 ноября 2010

Я пытаюсь выполнить запрос, который вернет список столбцов в таблице, проиндексированных по FULLTEXT.Таблица в формате MyISAM, и я буду использовать php для создания запроса.

В идеале я бы запустил запрос, и он бы возвратил информацию, чтобы я мог создать строку столбцов, разделенных запятыми.

например, "first_name, last_name, email"

Возможно ли это в MySQL?

Ответы [ 2 ]

23 голосов
/ 05 ноября 2010

Вы можете получить эту информацию из таблицы 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, если в таблице больше 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 голосов
/ 13 ноября 2016

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

SHOW CREATE TABLE [database_name].[table_name]

Замените скобки-заполнители своими собственными значениями.

Просмотрите вывод для строк FULLTEXT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...