2

join ステートメントを使用する場合、like 条件を使用してテーブルを結合したいと考えています。それを行う最も効率的な方法は何ですか?

の使用fielda like CONCAT ('%', fieldb, '%')はあまり効率的ではないようです

4

2 に答える 2

1

2 つのワイルド char を使用すると、インデックスが役に立たなくなります。できることは、前にあるものを削除することです。mysql は引き続きインデックスを使用して、検索対象を見つけます。インデックスがない場合は、次のコードを使用して作成します。

CREATE INDEX indexname ON tablename(columnname);

そして、クエリを次のように変更します

fielda like CONCAT (fieldb, '%')

インデックスを利用するには、列をテキスト フィールドにするか、単に varchar フィールドにするかを考慮する必要があります。列に長いテキストが含まれている場合は、全文検索を検討する必要があります。

これは、サンプルと適切な説明などを含む、このテーマに関するより詳細な記事です。

http://devzone.zend.com/26/using-mysql-full-text-searching/

于 2013-04-22T16:41:03.613 に答える