に最終更新
TRIM_IN
説明
TRIM_IN 関数は、文字列の先頭と末尾から指定した文字を取り除きます。文字集合を指定しない場合は、デフォルトで先頭と末尾の空白を取り除きます。文字集合を指定した場合は、集合内の順序に関係なく、その集合に含まれる文字を両端からすべて取り除きます。
TRIM_IN の特徴は、指定した集合に含まれる文字の任意の組み合わせを取り除くことです。一方、TRIM 関数は、指定した文字列との完全一致に基づいて取り除きます。
構文
TRIM_IN(<str>[, <rhs>])
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | 処理対象の文字列。型: VARCHAR |
<rhs> | 省略可能。取り除く文字の集合。型: VARCHAR |
戻り値
処理後の文字列を表す VARCHAR 型の値を返します。
特殊なケース:
- str が NULL の場合は NULL を返します。
- rhs を指定しない場合は、先頭と末尾の空白をすべて取り除きます。
- rhs を指定した場合は、両端から rhs に含まれる文字を、含まれない文字に達するまで取り除きます。
例
- 先頭と末尾の空白を取り除きます。
SELECT trim_in(' ab d ') str;
+------+
| str |
+------+
| ab d |
+------+
- 指定した文字集合に含まれる文字を取り除きます。
SELECT trim_in('ababccaab', 'ab') str;
+------+
| str |
+------+
| cc |
+------+
- TRIM 関数との比較です。
trim_inは第二引数を 文字集合 として扱い、集合内の文字を両端から取り除きます。一方、trimは第二引数をそのままの 部分文字列 として扱い、完全に一致する部分を両端から取り除きます。どちらも、両端から取り除ける部分がなくなるまで処理を繰り返します。
SELECT trim_in('ababccaab', 'ab'), trim('ababccaab', 'ab');
+----------------------------+-------------------------+
| trim_in('ababccaab', 'ab') | trim('ababccaab', 'ab') |
+----------------------------+-------------------------+
| cc | cca |
+----------------------------+-------------------------+
- 文字集合内の順序は結果に影響しません。
SELECT trim_in('abcHelloabc', 'cba');
+--------------------------------+
| trim_in('abcHelloabc', 'cba') |
+--------------------------------+
| Hello |
+--------------------------------+
- UTF-8 文字に対応します。
SELECT trim_in('+++ṭṛì ḍḍumai+++', '+');
+--------------------------------------+
| trim_in('+++ṭṛì ḍḍumai+++', '+') |
+--------------------------------------+
| ṭṛì ḍḍumai |
+--------------------------------------+
- NULL 値を処理します。
SELECT trim_in(NULL, 'abc');
+-----------------------+
| trim_in(NULL, 'abc') |
+-----------------------+
| NULL |
+-----------------------+
- 空文字列を処理します。
SELECT trim_in('', 'abc'), trim_in('abc', '');
+--------------------+--------------------+
| trim_in('', 'abc') | trim_in('abc', '') |
+--------------------+--------------------+
| | abc |
+--------------------+--------------------+
キーワード
TRIM_IN, TRIM