ホームページ >データベース >mysql チュートリアル >MySQL は複数のワイルドカード パターンを使用して LIKE 検索を実行できますか?

MySQL は複数のワイルドカード パターンを使用して LIKE 検索を実行できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-20 13:16:09296ブラウズ

Can MySQL Perform a LIKE Search with Multiple Wildcard Patterns?

MySQL の LIKE パターンと複数のワイルドカード パターン

問題:

MySQL は、複数のワイルドカード パターンを含む LIKE 検索を効率的に処理できますか? たとえば、「 40%」、「 38%」、「 40%」を含む文字列を同時に検索します。

解決策:

MySQL は直接の LIKE IN() 関数を提供しません。 ただし、非常に効果的な回避策として正規表現 (REGEXP) を使用します。 これにより、単一のクエリ内で複数のパターンを照合できるようになります:

<code class="language-sql">SELECT * FROM fiberbox WHERE field REGEXP '1740|1938|1940';</code>

このクエリは、fiberbox テーブルの field 列をスキャンして、指定されたパターンのいずれかを含む行を探します。 | (パイプ) 記号は「or」演算子として機能し、少なくとも 1 つのパターンが存在する行と一致します。

パフォーマンスに関する考慮事項:

REGEXP と複数の LIKE ステートメント (WHERE field LIKE '40%' OR field LIKE '38%' OR field LIKE '40%' など) の相対的なパフォーマンスは、特定のデータとクエリに大きく依存します。 両方の方法をベンチマークして、特定のデータセットとクエリのニーズに最も効率的なアプローチを決定することが重要です。

以上がMySQL は複数のワイルドカード パターンを使用して LIKE 検索を実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。