Показать таблицы индексированных столбцов FULLTEXT

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

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

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

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

Ответ 1

Вы можете получить эту информацию из таблицы 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;

Ответ 2

Здесь другой способ:

SHOW CREATE TABLE [database_name].[table_name]

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

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