2つのオプション:
-
LIKE
を使用する キーワードと文字列のパーセント記号select * from table where field like '%a%' or field like '%b%'.
(注:検索文字列にパーセント記号が含まれている場合は、それらをエスケープする必要があります)
-
例で指定したよりも複雑な文字列の組み合わせを探している場合は、正規表現(regex)を使用できます。
それらの使用方法の詳細については、MySQLのマニュアルを参照してください: http:/ /dev.mysql.com/doc/refman/5.1/en/regexp.html
これらのうち、LIKE
を使用する これは最も一般的なソリューションです。これは標準のSQLであり、一般的に使用されています。正規表現はあまり一般的に使用されていませんが、はるかに強力です。
どちらのオプションを使用する場合でも、パフォーマンスへの影響の可能性に注意する必要があることに注意してください。このようなサブストリングを検索すると、クエリはテーブル全体をスキャンする必要があります。テーブルが大きい場合、クエリが非常に遅くなる可能性があり、インデックス作成の量は役に立ちません。
これが問題であり、同じことを何度も検索する必要がある場合は、文字列フィールドに関連するサブが含まれていることを指定するフラグフィールドをテーブルに追加するなどの方法を選択できます。文字列。レコードの更新を挿入するときにこのフラグフィールドを最新の状態に保つと、検索するときにフラグをクエリするだけで済みます。これはインデックスを付けることができ、クエリをはるかに高速にします。それを行う価値があるかどうかはあなた次第ですが、LIKE
を使用した場合のパフォーマンスの悪さによって異なります。 。