11

FULLTEXTインデックスが付けられたテーブル内の列のリストを返すクエリを実行しようとしています。テーブルはMyISAM形式であり、phpを使用してクエリを作成します。

理想的には、クエリを実行すると情報が返されるため、列のコンマ区切りの文字列を作成できます。

例:「first_name、last_name、email」

これはMySQLで可能ですか?

4

2 に答える 2

26

その情報は、information_schema.STATISTICSテーブルから取得できます。

1つ以上の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';

そして、これは、テーブルに1つ以上ある場合に、FULLTEXTindexeの列のさまざまな組み合わせを示すものです。

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;
于 2010-11-05T16:16:02.873 に答える
1

別の方法は次のとおりです。

SHOW CREATE TABLE [database_name].[table_name]

括弧で囲まれたプレースホルダーを独自の値に置き換えます。

FULLTEXT行の出力を熟読します。

于 2016-11-13T20:42:35.530 に答える