複数文字列検索には MySQL find_in_set() 関数を使用します
MySQL の find_in_set() 関数は、一度に 1 つの文字列のみを検索できます。ただし、実際のアプリケーションでは、複数の文字列を同時に検索する必要があることがよくあります。
例:
<code class="language-sql">find_in_set('a', 'a,b,c,d')</code>
ここでは、「a」が唯一の検索文字列です。 「a、b、c」などの複数の文字列を検索する場合は、次のメソッドを使用できます:
<code class="language-sql">find_in_set('a', 'a,b,c,d') OR find_in_set('b', 'a,b,c,d') OR find_in_set('c', 'a,b,c,d')</code>
このメソッドは、OR 演算子を使用して複数の find_in_set() 呼び出しを結合します。ただし、より効率的なソリューションが存在します:
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
このメソッドは、正規表現パターン マッチングのために「setcolumn」フィールドの先頭と末尾にカンマを追加します。その中には:
このトリックは、'setcolumn' に指定されたすべての文字列が含まれる行を効果的に検索し、複数の find_in_set() 呼び出しに代わるより柔軟で効率的な方法を提供します。
以上がMySQL で複数の文字列検索を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。