0

インデックスにヒットするクエリを取得しようとしています。

シナリオは次のとおりです。

指定された文字列 - 列「str」がその文字列の部分文字列であるすべての行を検索します

私は次のようなことを試しました:

SELECT str FROM tbl WHERE 'fullstring' LIKE CONCAT(str, '%');

ただし、 でクエリを調べたときに作成したインデックスにはヒットしませんEXPLAIN EXTENDED

最悪の場合、ネストされたセットを使用してデータベースを少し改造することでこの問題を解決できますが、そのルートをたどる必要はありません。

4

1 に答える 1

0

インデックスを使用する必要があります。MySQL オプティマイザーが適切なインデックスを選択していない場合は、try でFORCE KEY試すことができます。

SELECT str FROM tbl FORCE KEY(index_name) WHERE 'fullstring' LIKE CONCAT(str, '%');
于 2012-07-25T09:43:23.057 に答える