![](/img/trans.png)
[英]Fulltext Search with joined tables, show exact match "best match" first
[英]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.