に最終更新
TRIM_IN
説明
TRIM_IN 関数は、文字列の先頭と末尾から指定した文字を取り除きます。文字セットを指定しない場合は、先頭と末尾の空白を取り除きます。文字セットを指定した場合は、セット内の順序に関係なく、指定された文字を両端からすべて取り除きます。
TRIM_IN の特徴は、指定したセット内の文字を任意の組み合わせで取り除くことです。一方、TRIM 関数は文字列の完全一致に基づいて文字を取り除きます。
構文
TRIM_IN(<str>[, <rhs>])
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | 処理対象の文字列。型: VARCHAR |
<rhs> | 省略可能。取り除く文字のセット。型: VARCHAR |
戻り値
処理後の文字列を表す VARCHAR 型の値を返します。
特殊なケース:
- str が NULL の場合、NULL を返します
- rhs を指定しない場合、先頭と末尾の空白をすべて取り除きます
- rhs を指定した場合、rhs に含まれない文字に達するまで、両端から rhs に含まれる文字をすべて取り除きます
例
- 先頭と末尾の空白を取り除く
SELECT trim_in(' ab d ') str;
+------+
| str |
+------+
| ab d |
+------+
- 指定した文字セットに含まれる文字を取り除く
SELECT trim_in('ababccaab', 'ab') str;
+------+
| str |
+------+
| cc |
+------+
- 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