MySQLテーブルの全レコードにTRIM関数を適用して余分な空白を一括削除する方法
MySQLでは、TRIM関数を使用することで、文字列の先頭と末尾にある余分な空白(スペース)を簡単に取り除くことができます。本記事では、テーブル内のすべてのレコードに対してTRIMを一度に適用し、データを整形する手順を解説します。
1. サンプルテーブルを作成する
まず、動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable
(
StudentName varchar(100)
);
Query OK, 0 rows affected (0.64 sec)2. 前後に空白を含むレコードを挿入する
次に、INSERT文を使って、先頭や末尾に空白が含まれたデータを挿入します。
mysql> insert into DemoTable values(' Adam Smith ');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(' David Miller ');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(' Chris Brown ');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(' Carol Taylor ');
Query OK, 1 row affected (0.10 sec)3. 現在のレコードを確認する
SELECT文ですべてのレコードを表示してみます。
mysql> select *from DemoTable;
実行結果は以下のとおりです。名前の前後に余分な空白が残っていることがわかります。
+-----------------------------------+ | StudentName | +-----------------------------------+ | Adam Smith | David Miller | | Chris Brown | | Carol Taylor | +-----------------------------------+ 4 rows in set (0.00 sec)
4. UPDATE文とTRIM関数で全レコードを一括整形する
テーブル内のすべてのレコードから空白を取り除くには、UPDATE文の中でTRIM関数を呼び出します。対象カラム自身をTRIMした結果で上書きするのがポイントです。
mysql> update DemoTable set StudentName=trim(StudentName); Query OK, 4 rows affected (0.24 sec) Rows matched: 4 Changed: 4 Warnings: 0
5. 処理後のレコードを再確認する
もう一度SELECT文を実行して、結果を確認しましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。TRIM()によって、すべてのレコードから先頭と末尾の空白が正常に除去されました。
+-----------------+ | StudentName | +-----------------+ | Adam Smith | | David Miller | | Chris Brown | | Carol Taylor | +-----------------+ 4 rows in set (0.00 sec)
補足:TRIM関数のバリエーション
TRIM関数には、以下のような関連関数もあります。用途に応じて使い分けると便利です。
- LTRIM():文字列の先頭の空白のみを削除します。
- RTRIM():文字列の末尾の空白のみを削除します。
- TRIM( BOTH 'x' FROM 文字列 ):空白以外の特定の文字を指定して削除することも可能です。
このように、UPDATE文とTRIM関数を組み合わせることで、大量のデータに含まれる不要な空白を一括でクリーンアップできます。ユーザー入力データの整形や、検索条件の一致率向上など、実務でも非常に役立つテクニックなので、ぜひ活用してください。
-
MySQLで1つのテーブルからすべてのレコードを別のテーブルにコピーする方法(CREATE TABLE AS SELECT活用術)
MySQLでは、CREATE TABLE AS SELECTステートメントを使うことで、既存テーブルのすべてのレコードを簡単に新しいテーブルへコピーできます。この記事では、実際のSQL例とともにその手順をわかりやすく解説します。 CREATE TABLE AS SELECTステートメントとは CREATE TABLE AS SELECTは、SELECT文の実行結果をもとに新しいテーブルを作成する構文です。元テーブルの構造とデータをまとめて複製できるため、テーブルのバックアップやデータ移行の際に非常に便利です。 サンプルテーブルの作成 まず、コピー元となるテーブルを作成しましょう。 mys
-
MySQLでテーブル列の全日付レコードに1年を追加する方法
MySQLでは、DATE_ADD()関数を使うことで、日付や日時の値に指定した期間を簡単に加算できます。この記事では、テーブル内のすべての日付レコードに1年を追加する方法を、具体的な手順とともに解説します。 サンプルテーブルの作成 まず、デモ用のテーブルを作成します。ここでは、入社日を格納する JoiningDate カラムを持つテーブルを定義します。 mysql> create table DemoTable -> ( -> JoiningDate datetime -> ); Query OK, 0 rows affected (0.59