SQL の LIKE 演算子は、指定されたパターンを含む文字列を検索するために使用されます。通常、% のようなワイルドカード文字を一致パターンに追加します。ただし、LIKE を使用して複数の条件を導入する場合は、従来の OR 方法が最適な選択ではない可能性があります。
LIKE 演算子に複数の条件を導入するより良い方法は、一時テーブルを作成することです。例は次のとおりです:
<code class="language-sql">CREATE TEMPORARY TABLE patterns ( pattern VARCHAR(20) ); INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%'); SELECT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);</code>
この例では、複数の一致するパターンを保存するために、pattern という名前の一時テーブルを作成します。次に、必要なスキーマをこのテーブルに挿入します。最後に、tbl テーブルとパターン テーブルの間で JOIN 操作を実行し、パターン列に基づいて一致する行を見つけます。
上記の例では、パターンが一意であり、tbl テーブルの各行が 1 つのパターンのみに一致すると仮定しています。ただし、複数の一致の可能性がある場合は、DISTINCT クエリ修飾子を使用して、一意の結果を保証できます。
<code class="language-sql">SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);</code>
この変更により、tbl テーブル内の各行は、複数のパターンに一致する場合でも、結果に 1 回だけ表示されることが保証されます。
以上がSQL の LIKE 演算子で複数の条件を効率的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。