MySQLで文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM

本資料はMySQLで文字列の前後にある不要なスペースを削除する文字列関数TRIM, LTRIM, RTRIMについて記述します。


スポンサーリンク

参考資料

関連記事

環境および環境設定など

使用したOSはCentOS6になります。
MySQLのバージョンは以下のとおりです。

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.1.66    |
+-----------+
1 row in set (0.01 sec)

以下のSQLを実行し、データベースおよびテーブルを作成しデータを投入しました。

mysql> create database trimdb;
Query OK, 1 row affected (0.00 sec)

mysql> use trimdb
Database changed
mysql> create table trimtbl (c1 varchar(10));
Query OK, 0 rows affected (0.09 sec)

mysql> insert into trimtbl values(' hello '),('  world  ');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from trimtbl;
+-----------+
| c1        |
+-----------+
|  hello    |
|   world   |
+-----------+
2 rows in set (0.00 sec)

LTRIM, RTRIMを使ってみる。

作成したテーブルを使用してLTRIM, RTRIMを使用してみます。

concat関数で$を末尾に連結しています。
これは、LTRIM, RTRIMで末尾が削除されているかを確認するために$をカラムの値の後ろに連結しました。

mysql> select concat(ltrim(c1),'$'), concat(rtrim(c1),'$') from trimtbl;
+-----------------------+-----------------------+
| concat(ltrim(c1),'$') | concat(rtrim(c1),'$') |
+-----------------------+-----------------------+
| hello $               |  hello$               |
| world  $              |   world$              |
+-----------------------+-----------------------+
2 rows in set (0.00 sec)

上記結果によりLTRIMは左側のスペースを削除し、RTRIMは右側のスペースを削除するのが確認できます。

TRIMを使ってみる

TRIM関数は任意の文字列を削除することができます。

引数指定なしでTRIMを実行する(前後のスペース削除)

引数を指定しないでtrimを実行すると前後のスペースを削除します。

mysql> select concat(trim(c1),'$'), concat(trim(c1),'$') from trimtbl;
+----------------------+----------------------+
| concat(trim(c1),'$') | concat(trim(c1),'$') |
+----------------------+----------------------+
| hello$               | hello$               |
| world$               | world$               |
+----------------------+----------------------+
2 rows in set (0.00 sec)

trim(文字列)は、以下のように書くこともできます。

select trim(both from カラム名) from テーブル名;

文字列を直に設定し実行することもできます。

mysql> select trim(' HELLO WORLD ');
+-----------------------+
| trim(' HELLO WORLD ') |
+-----------------------+
| HELLO WORLD           |
+-----------------------+
1 row in set (0.00 sec)

mysql> select trim(both from ' HELLO WORLD ');
+---------------------------------+
| trim(both from ' HELLO WORLD ') |
+---------------------------------+
| HELLO WORLD                     |
+---------------------------------+
1 row in set (0.00 sec)

引数指定を指定してみる

上記ではBOTHを指定しました。
以下では、LEADING, TRAILINGを使用した例を記します。

文字列を指定しトリミングする

BOTH, LEADING, TRAILINGを使用し文字列を指定してトリミングしてみる


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-12 (水) 12:53:39