質問:
MySQL の find_in_set 関数は、カンマ区切り値 (CSV) コレクション内の単一の文字列を検索できます。しかし、同時に複数の文字列を検索する機能をどのように活用すればよいでしょうか?
答え:
MySQL には複数文字列検索をサポートするネイティブ関数はありませんが、次のテクニックを使用できます:
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
このメソッドは、ターゲットの CSV コレクションを先頭と末尾のカンマを含むカンマで連結します。次に、結果の文字列がパイプ記号 (|) で区切られた目的の検索文字列パターンと一致するかどうかを確認します。例:
<code class="language-sql">WHERE CONCAT(",", `tags`, ",") REGEXP ",(red|green|blue),"</code>
このクエリは、tags
列に「red」、「green」、「blue」のいずれかの値が含まれる行を返します。
以上がMySQL の find_in_set を使用して複数の文字列検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。