効率的な MySQL 文字列の封じ込め: substr()
MySQL では、多くの場合、列文字列 ($haystack
) に特定の部分文字列 ($needle
) が含まれているかどうかを確認する必要があります。 substr()
関数も考慮されますが、文字列の先頭での完全一致のみが検証されます。
最適な解決策: LIKE
とワイルドカード
優れた方法には、パターン マッチングに MySQL の LIKE
演算子が含まれます。 このクエリは、部分文字列の包含を効率的にチェックします:
<code class="language-sql">SELECT * FROM `table` WHERE `column` LIKE '%{$needle}%'</code>
%
記号はワイルドカードであり、0 個以上の文字と一致します。 したがって、クエリは、$haystack
の任意の位置に $needle
が含まれる行を識別します。
スケーラビリティに関するパフォーマンスの考慮事項
をワイルドカードとともに使用すると、大規模なデータセットのパフォーマンスに影響を与える可能性があります。大量のデータベースの場合は、このような文字列検索のクエリ速度を大幅に向上させるために、全文インデックスの実装を検討してください。LIKE
以上がMySQL で文字列の包含を効率的にチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。