MULTI_SEARCH_ALL_POSITIONS
説明
MULTI_SEARCH_ALL_POSITIONS関数は、文字列内で複数の部分文字列をバッチで検索します。各部分文字列の最初の出現位置を含む配列を返します。検索は大文字小文字を区別します。
構文
MULTI_SEARCH_ALL_POSITIONS(<haystack>, <needles>)
パラメータ
| Parameter | デスクリプション |
|---|---|
<haystack> | 検索対象の文字列。型: VARCHAR |
<needles> | 検索する複数の部分文字列を含む配列。型: ARRAY |
Return Value
ARRAY<needles>のi番目の部分文字列が<haystack>内で最初に出現する位置を表します。
特別なケース:
- 位置のカウントは1から始まります
- 部分文字列が見つからない場合、対応する位置は0を返します
- 検索は大文字小文字を区別します
<haystack>または<needles>がNULLの場合、NULLを返します- n番目の文字位置ではなく、バイト位置を返します
Examples
- 基本的な使用法: 複数の部分文字列を検索
SELECT multi_search_all_positions('Hello, World!', ['Hello', 'World']);
+----------------------------------------------------------+
| multi_search_all_positions('Hello, World!', ['Hello', 'World']) |
+----------------------------------------------------------+
| [1, 8] |
+----------------------------------------------------------+
- 大文字小文字を区別: 小文字が見つかりません
SELECT multi_search_all_positions('Hello, World!', ['hello', '!', 'world']);
+----------------------------------------------------------------------+
| multi_search_all_positions('Hello, World!', ['hello', '!', 'world']) |
+----------------------------------------------------------------------+
| [0, 13, 0] |
+----------------------------------------------------------------------+
- Mixed search: 部分的に発見
SELECT multi_search_all_positions('Hello, World!', ['Hello', '!', 'xyz']);
+--------------------------------------------------------------------+
| multi_search_all_positions('Hello, World!', ['Hello', '!', 'xyz']) |
+--------------------------------------------------------------------+
| [1, 13, 0] |
+--------------------------------------------------------------------+
- 空の配列
SELECT multi_search_all_positions('Hello', []);
+------------------------------------------+
| multi_search_all_positions('Hello', []) |
+------------------------------------------+
| [] |
+------------------------------------------+
- 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