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

COUNT_SUBSTRINGS

説明

COUNT_SUBSTRINGS関数は、文字列内で指定された部分文字列が出現する回数をカウントします。注意:現在の実装では、マッチが見つかった際に部分文字列の長さ分シフトした後に検索を続行します。例えば、str='ccc'でpattern='cc'の場合、返される結果は1です。

構文

COUNT_SUBSTRINGS(<str>, <pattern>)

パラメータ

Parameterデスクリプション
<str>検索対象の文字列。型: STRING
<pattern>マッチさせる部分文字列。型: STRING

戻り値

INT型を返し、文字列内に部分文字列が出現する回数を表します。

特殊なケース:

  • strがNULLの場合、NULLを返します
  • patternが空文字列の場合、0を返します
  • strが空文字列の場合、0を返します

  1. 基本的な使用方法
SELECT count_substrings('a1b1c1d', '1');
+----------------------------------+
| count_substrings('a1b1c1d', '1') |
+----------------------------------+
| 3 |
+----------------------------------+
  1. 連続するカンマがある場合
SELECT count_substrings(',,a,b,c,', ',');
+-----------------------------------+
| count_substrings(',,a,b,c,', ',') |
+-----------------------------------+
| 5 |
+-----------------------------------+
  1. 部分文字列が重複するケース
SELECT count_substrings('ccc', 'cc');
+--------------------------------+
| count_substrings('ccc', 'cc') |
+--------------------------------+
| 1 |
+--------------------------------+
  1. NULL値の処理
SELECT count_substrings(NULL, ',');
+-----------------------------+
| count_substrings(NULL, ',') |
+-----------------------------+
| NULL |
+-----------------------------+
  1. 空文字列の処理
SELECT count_substrings('a,b,c,abcde', '');
+-------------------------------------+
| count_substrings('a,b,c,abcde', '') |
+-------------------------------------+
| 0 |
+-------------------------------------+