ホームページ >データベース >mysql チュートリアル >SQL WHERE 句: 「=」と「LIKE」をいつ使用するか?
WHERE
句: =
対 LIKE
SQL WHERE
句は、文字列比較のための 2 つの異なる演算子、=
(等しい) と LIKE
(類似性) を提供します。 正確なクエリ結果を得るには、それらの違いを理解することが重要です。
オペレーターの動作
=
演算子は、正確な文字列比較を実行します。 文字列の長さと文字ごとの等価性を考慮して、2 つの文字列間の同一の一致をチェックします。
逆に、LIKE
演算子はパターン マッチングを実行します。文字シーケンスに基づいて文字列を比較し、部分一致を見つけるためにワイルドカード (任意の文字シーケンスには %
、単一文字には _
) を使用できるようにします。 どちらの演算子もデータベースの照合設定の影響を受け、文字比較の処理方法に影響します。
具体例
照合順序の影響を示す次の例を考えてみましょう:
<code class="language-sql">SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci; -- Result: 0 (no match) SELECT 'ä' = 'ae' COLLATE latin1_german2_ci; -- Result: 1 (match)</code>
ここで、'ä' (ウムラウト 'a') は、LIKE
を使用した 'ae' と一致しません。ただし、=
を使用すると、latin1_german2_ci
照合では 'ä' と 'ae' が同等に扱われるため、一致します。
=
オペレーターの詳細
SQL 標準では、=
文字列比較には次のことが含まれると指定されています。
本質的に、=
は定義された照合ルールを直接適用したものです。
LIKE
オペレーターの仕組み
LIKE
の動作は異なります:
=
と同様に、現在の照合順序を使用します。%
および _
) の存在により、マッチング機能が完全な同等性を超えて拡張されます。適切なオペレーターの選択
=
と LIKE
のどちらを選択するかは、望ましい結果によって決まります。 =
は正確な一致を目的としており、LIKE
は柔軟なパターン マッチングを目的としています。 不必要なオペレータの切り替えを避けてください。比較のニーズを最もよく反映する演算子を選択してください。 一般に、時期尚早な最適化は推奨されません。
以上がSQL WHERE 句: 「=」と「LIKE」をいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。