ホームページ > データベース > mysql チュートリアル > MySQL で複数の文字列検索を効率的に実行するにはどうすればよいですか?

MySQL で複数の文字列検索を効率的に実行するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-11 19:36:42
オリジナル
490 人が閲覧しました

How Can I Efficiently Perform Multiple String Searches in MySQL?

複数文字列検索には 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」の値は「,a,b,c,d,」で表されます。
  • 正規表現「,(val1|val2|val3)」は、文字列「,a,b,c,d,」内の部分文字列「a」、「b」、または「c」と一致します。

このトリックは、'setcolumn' に指定されたすべての文字列が含まれる行を効果的に検索し、複数の find_in_set() 呼び出しに代わるより柔軟で効率的な方法を提供します。

以上がMySQL で複数の文字列検索を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート