簡體   English   中英

顯示一個表 FULLTEXT 索引列

[英]Show a tables FULLTEXT indexed columns

我正在尋找運行一個查詢,該查詢將返回表中 FULLTEXT 索引的列列表。 該表采用 MyISAM 格式,我將使用 php 來構造查詢。

理想情況下,我會運行查詢,它會返回信息,這樣我就可以構造一個逗號分隔的列字符串。

例如“名字,姓氏,電子郵件”

這在 MySQL 中是否可行?

您可以從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;

這是另一種方式:

SHOW CREATE TABLE [database_name].[table_name]

用您自己的值替換括號內的占位符。

仔細閱讀FULLTEXT行的輸出。

我來晚了,但它就在這里。

如果您不記得索引到的表名,您可以從information_schema數據庫中獲取它們的表名和模式名。

你需要做的就是——

select table_name from information_schema.STATISTICS  where table_schema = 'test'  and index_type = 'FULLTEXT';

上面的代碼將只為您提供包含全文索引的所有表的名稱。

select table_name,table_schema from information_schema.STATISTICS  where index_type = 'FULLTEXT';

但是,這將為您提供數據庫名稱以及具有全文索引的表名稱

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM