ホームページ >データベース >mysql チュートリアル >MySQL は複数のワイルドカード パターンを使用して LIKE 検索を実行できますか?
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 サイトの他の関連記事を参照してください。