MariaDBでは、 TRIM()
は、文字列の先頭または末尾から文字を削除する組み込みの文字列関数です。
デフォルトでは、先頭と末尾のスペースが削除されますが、削除する文字と、削除する側を指定できます。
構文
TRIM()
関数は次のように使用できます:
TRIM([remstr FROM] str)
または:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
str
末尾のスペースを削除する文字列であり、 remstr
削除する文字列です。
remstr
の場合 が提供されていない場合は、 TRIM()
スペースを削除します。
例
基本的な例は次のとおりです。
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(' Caribbean Island ') AS "Trimmed";
結果:
+------------------------+------------------+ | Untrimmed | Trimmed | +------------------------+------------------+ | Caribbean Island | Caribbean Island | +------------------------+------------------+
この例では、最も基本的な構文を使用しています。私たちがしたのは、トリミングする文字列を提供することだけでした。トリミングする文字を指定しなかったため、すべてのスペースが文字列の両側からトリミングされました。
文字列内のスペースがそのまま残っていることもわかります。
両方コード> 引数
デフォルトでは、 TRIM()
文字列の両側をトリミングします。ただし、 BOTH
を明示的に指定することはできます 必要に応じて:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(BOTH FROM ' Caribbean Island ') AS "Trimmed";
結果:
+------------------------+------------------+ | Untrimmed | Trimmed | +------------------------+------------------+ | Caribbean Island | Caribbean Island | +------------------------+------------------+
前の例と同じ結果が得られます。
LEADING
引数
LEADING
を指定する トリム操作を文字列の先頭のみに制限します:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(LEADING FROM ' Caribbean Island ') AS "Trimmed";
結果:
+------------------------+---------------------+ | Untrimmed | Trimmed | +------------------------+---------------------+ | Caribbean Island | Caribbean Island | +------------------------+---------------------+
トリミングされた文字列の右側にまだスペースが存在することがわかります。左側の部分だけがトリミングされました。
TRAILING
引数
TRAILING
の指定 トリム操作を文字列の先頭のみに制限します:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(TRAILING FROM ' Caribbean Island ') AS "Trimmed";
結果:
+------------------------+---------------------+ | Untrimmed | Trimmed | +------------------------+---------------------+ | Caribbean Island | Caribbean Island | +------------------------+---------------------+
今回は、右の部分だけをトリミングしました。トリミングされた文字列の左側にはまだスペースがあります。
トリミングする文字列を指定する
トリミングする文字を指定する例を次に示します。
SELECT
'...mountain...' AS "Untrimmed",
TRIM('.' FROM '...mountain...') AS "Trimmed";
結果:
+----------------+----------+ | Untrimmed | Trimmed | +----------------+----------+ | ...mountain... | mountain | +----------------+----------+
単一の文字である必要はありません。トリミングする任意の文字列を指定できます:
SELECT
TRIM('.' FROM '.+.mountain.+.') AS "1",
TRIM('.+' FROM '.+.mountain.+.') AS "2",
TRIM('+.' FROM '.+.mountain.+.') AS "3",
TRIM('.+.' FROM '.+.mountain.+.') AS "4";
結果:
+--------------+--------------+--------------+----------+ | 1 | 2 | 3 | 4 | +--------------+--------------+--------------+----------+ | +.mountain.+ | .mountain.+. | .+.mountain. | mountain | +--------------+--------------+--------------+----------+
必要に応じて、単語の一部をトリミングすることもできます。
SELECT TRIM('moun' FROM 'mountain');
結果:
+------------------------------+ | TRIM('moun' FROM 'mountain') | +------------------------------+ | tain | +------------------------------+
BOTH
も使用できます 、 LEADING
およびTRAILING
トリミングする文字列を指定するときの引数。
例:
SELECT
TRIM(BOTH '.' FROM '...mountain...') AS "Both",
TRIM(LEADING '.' FROM '...mountain...') AS "Leading",
TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing";
結果:
+----------+-------------+-------------+ | Both | Leading | Trailaing | +----------+-------------+-------------+ | mountain | mountain... | ...mountain | +----------+-------------+-------------+
ヌル引数
null
が与えられた場合 引数の場合、結果は null
になります :
SELECT TRIM(null);
結果:
+------------+ | TRIM(null) | +------------+ | NULL | +------------+
Oracleモード
でない場合 Oracleモードで実行している場合、結果が空の場合(つまり、長さがゼロの場合)、結果は空の文字列になります。
ただし、Oracleモードで実行すると、結果は null
になります。 。
ここではデフォルトモードになっています(つまり、 Oracleモードの場合):
SELECT TRIM('');
結果:
+----------+ | TRIM('') | +----------+ | | +----------+
それでは、Oracleモードに切り替えましょう:
SET SQL_MODE=ORACLE;
そして、コードを再度実行します:
SELECT TRIM('');
結果:
+----------+ | TRIM('') | +----------+ | NULL | +----------+
これを行う別の方法もあります。 Oracleモードに切り替える代わりに、 TRIM_ORACLE()
を使用できます。 関数名として。
デフォルトモードに戻しましょう:
SET SQL_MODE=DEFAULT;
そして、 TRIM_ORACLE()
を実行します :
SELECT TRIM_ORACLE('');
結果:
+-----------------+ | TRIM_ORACLE('') | +-----------------+ | NULL | +-----------------+
引数がありません
TRIM()
の呼び出し 引数がないとエラーになります:
SELECT TRIM();
結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1