メインコンテンツまでスキップ
バージョン: 26.x

MULTI_SEARCH_ALL_POSITIONS

説明

MULTI_SEARCH_ALL_POSITIONS関数は、文字列内で複数の部分文字列をバッチで検索します。各部分文字列の最初の出現位置を含む配列を返します。検索は大文字小文字を区別します。

構文

MULTI_SEARCH_ALL_POSITIONS(<haystack>, <needles>)

パラメータ

Parameterデスクリプション
<haystack>検索対象の文字列。型: VARCHAR
<needles>検索する複数の部分文字列を含む配列。型: ARRAY

Return Value

ARRAY型を返します。配列のi番目の要素は、<needles>のi番目の部分文字列が<haystack>内で最初に出現する位置を表します。

特別なケース:

  • 位置のカウントは1から始まります
  • 部分文字列が見つからない場合、対応する位置は0を返します
  • 検索は大文字小文字を区別します
  • <haystack>または<needles>がNULLの場合、NULLを返します
  • n番目の文字位置ではなく、バイト位置を返します

Examples

  1. 基本的な使用法: 複数の部分文字列を検索
SELECT multi_search_all_positions('Hello, World!', ['Hello', 'World']);
+----------------------------------------------------------+
| multi_search_all_positions('Hello, World!', ['Hello', 'World']) |
+----------------------------------------------------------+
| [1, 8] |
+----------------------------------------------------------+
  1. 大文字小文字を区別: 小文字が見つかりません
SELECT multi_search_all_positions('Hello, World!', ['hello', '!', 'world']);
+----------------------------------------------------------------------+
| multi_search_all_positions('Hello, World!', ['hello', '!', 'world']) |
+----------------------------------------------------------------------+
| [0, 13, 0] |
+----------------------------------------------------------------------+
  1. Mixed search: 部分的に発見
SELECT multi_search_all_positions('Hello, World!', ['Hello', '!', 'xyz']);
+--------------------------------------------------------------------+
| multi_search_all_positions('Hello, World!', ['Hello', '!', 'xyz']) |
+--------------------------------------------------------------------+
| [1, 13, 0] |
+--------------------------------------------------------------------+
  1. 空の配列
SELECT multi_search_all_positions('Hello', []);
+------------------------------------------+
| multi_search_all_positions('Hello', []) |
+------------------------------------------+
| [] |
+------------------------------------------+
  1. UTF-8特殊文字サポート
SELECT multi_search_all_positions('ṭṛì ḍḍumai Hello', ['ṭṛì', 'Hello', 'test']);
+----------------------------------------------------------------------------------------+
| multi_search_all_positions('ṭṛì ḍḍumai Hello', ['ṭṛì', 'Hello', 'test']) |
+----------------------------------------------------------------------------------------+
| [1, 21, 0] |
+----------------------------------------------------------------------------------------+

キーワード

MULTI_SEARCH,SEARCH,POSITIONS