ホームページ >データベース >mysql チュートリアル >カンマ区切りの値フィールドの完全一致を求めて MySQL に効率的にクエリを実行するにはどうすればよいですか?
カンマ区切り値に対する MySQL クエリの最適化
カンマ区切りの数値カラーコードを格納する SHIRTS
フィールドを持つ COLORS
テーブルを調べてみましょう。 単純な LIKE
クエリでは不正確な結果が得られる可能性があります:
<code class="language-sql">SELECT * FROM shirts WHERE colors LIKE '%1%'</code>
このクエリは、1、12、または 15 のような色のシャツを含む、colors
フィールドのどこかに '1' を含むシャツを返します。カラー コード 1 のシャツだけを検索するには、より正確なメソッドが必要です。
効果的な手法の 1 つは、比較する前に colors
文字列の両側にコンマを配置することです。
<code class="language-sql">SELECT * FROM shirts WHERE CONCAT(',', colors, ',') LIKE '%,1,%'</code>
これにより、カンマで正確に区切られたカラーコード 1 のみが一致することが保証されます。
別の効率的なアプローチでは、FIND_IN_SET()
関数を使用します。
<code class="language-sql">SELECT * FROM shirts WHERE FIND_IN_SET('1', colors) > 0</code>
FIND_IN_SET()
は、colors
フィールドのカンマ区切りリスト内に「1」が存在するかどうかを直接チェックし、正確な結果を提供します。 一般に、この方法は、明快さと効率の点で好まれます。
以上がカンマ区切りの値フィールドの完全一致を求めて MySQL に効率的にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。