に最終更新
LTRIM
説明
LTRIM 関数は、文字列の左側(先頭)から、連続する空白文字または指定した文字集合に含まれる文字を削除します。この関数は文字列の左端から順に調べ、対象の文字集合に含まれない文字に達するまで、対象の文字を連続して削除します。
構文
LTRIM(<str> [, <trim_chars>])
引数
| 引数 | 説明 |
|---|---|
<str> | 左側から文字を削除する対象の文字列。型: VARCHAR |
<trim_chars> | 省略可能。削除する文字の集合を指定します。省略した場合、デフォルトでは空白文字を削除します。型: VARCHAR |
戻り値
VARCHAR 型を返します。値は、指定した文字を左側から削除した後の文字列です。
削除の規則:
- 文字列の左側(先頭)からのみ文字を削除します
- trim_chars に含まれる文字が連続する間、それらをすべて削除します
- trim_chars に含まれない文字に達すると、削除を停止します
- trim_chars を指定しない場合、デフォルトでは空白文字(スペース、タブ、改行など)を削除します
特殊なケース:
- いずれかの引数が NULL の場合、NULL を返します
- str が空文字列の場合、空文字列を返します
- trim_chars が空文字列の場合、元の文字列を返します
- 文字列全体が trim_chars に含まれる文字で構成される場合、空文字列を返します
例
- 左側のスペースを削除する
SELECT LTRIM(' ab d');
+-------------------+
| LTRIM(' ab d') |
+-------------------+
| ab d |
+-------------------+
- 指定した文字を削除する
SELECT LTRIM('ababccaab', 'ab');
+----------------------------+
| LTRIM('ababccaab', 'ab') |
+----------------------------+
| ccaab |
+----------------------------+
- NULL 値の扱い
SELECT LTRIM(NULL), LTRIM('test', NULL);
+-------------+---------------------+
| LTRIM(NULL) | LTRIM('test', NULL) |
+-------------+---------------------+
| NULL | NULL |
+-------------+---------------------+
- 空文字列の入力
SELECT LTRIM(''), LTRIM('test', '');
+-----------+-------------------+
| LTRIM('') | LTRIM('test', '') |
+-----------+-------------------+
| | test |
+-----------+-------------------+
- 複数文字の接頭部分を削除する
SELECT LTRIM('abcdefg', 'abc'), LTRIM('123456', '12');
+-------------------------+-----------------------+
| LTRIM('abcdefg', 'abc') | LTRIM('123456', '12') |
+-------------------------+-----------------------+
| defg | 3456 |
+-------------------------+-----------------------+
- 文字列全体が削除対象の文字に一致する場合
SELECT LTRIM('aaaaa', 'a'), LTRIM(' ', ' ');
+---------------------+-------------------+
| LTRIM('aaaaa', 'a') | LTRIM(' ', ' ') |
+---------------------+-------------------+
| | |
+---------------------+-------------------+
- UTF-8 の部分文字列を削除する(第二引数は文字集合ではなく、リテラルの部分文字列として照合される)
SELECT LTRIM('ṭṛìṭṛì test', 'ṭṛì'), LTRIM('ḍḍuḍḍu hello', 'ḍu');
+--------------------------------------------+---------------------------------------+
| LTRIM('ṭṛìṭṛì test', 'ṭṛì') | LTRIM('ḍḍuḍḍu hello', 'ḍu') |
+--------------------------------------------+---------------------------------------+
| test | ḍḍuḍḍu hello |
+--------------------------------------------+---------------------------------------+
- 数字の接頭部分を削除する
SELECT LTRIM('000123', '0'), LTRIM('123abc123', '123');
+----------------------+---------------------------+
| LTRIM('000123', '0') | LTRIM('123abc123', '123') |
+----------------------+---------------------------+
| 123 | abc123 |
+----------------------+---------------------------+
- 句読記号の接頭部分を削除する
SELECT LTRIM('---text---', '-'), LTRIM('@@hello@@', '@');
+--------------------------+-------------------------+
| LTRIM('---text---', '-') | LTRIM('@@hello@@', '@') |
+--------------------------+-------------------------+
| text--- | hello@@ |
+--------------------------+-------------------------+