显示表FULLTEXT索引列

时间:2010-11-05 15:53:20

标签: mysql fulltext-index

我希望运行一个查询,该查询将返回表格中FULLTEXT索引的列列表。该表采用MyISAM格式,我将使用php构建查询。

理想情况下,我会运行查询,它会返回信息,因此我可以构造一个逗号分隔的列字符串。

e.g。 “first_name,last_name,email”

这在MySQL中是否可行?

2 个答案:

答案 0 :(得分:23)

您可以从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索引中列的各种组合,如果表上有多个列:

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;

答案 1 :(得分:0)

这是另一种方式:

SHOW CREATE TABLE [database_name].[table_name]

用您自己的值替换括号内的占位符。

仔细阅读FULLTEXT行的输出。