【MySQL】数字の間にスペースを含む数値データを整形する方法(REPLACE関数の使い方)
データベースでは、「145 78 90」のように数字の間にスペースが挿入された文字列として数値が保存されているケースがあります。電話番号や桁区切りのデータなどがその典型例です。このようなデータを扱いやすくするには、スペースを取り除いて連続した数字に変換すると便利です。
本記事では、MySQLのREPLACE()関数を使って、数値文字列内のスペースを一括で削除する方法を解説します。
1. サンプルテーブルの作成
まず、テーブルを作成します。ここでは数値をvarchar型の文字列として保存します。
mysql> create table DemoTable1546
-> (
-> Number varchar(20)
-> );
Query OK, 0 rows affected (0.99 sec)2. テストデータの挿入
INSERTコマンドを使って、スペースを含む数値データを登録します。
mysql> insert into DemoTable1546 values('145 78 90');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1546 values('89 789 564 903');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1546 values('1345 7894 866 653534');
Query OK, 1 row affected (0.12 sec)3. 登録データの確認
SELECT文でテーブルの中身を確認してみましょう。
mysql> select * from DemoTable1546;
実行結果は以下のとおりです。
+----------------------+ | Number | +----------------------+ | 145 78 90 | | 89 789 564 903 | | 1345 7894 866 653534 | +----------------------+ 3 rows in set (0.00 sec)
4. REPLACE関数でスペースを削除するUPDATE文
数字の間にあるスペースを削除して数値を整形するには、次のようなUPDATE文を実行します。
REPLACE()関数は「REPLACE(対象カラム, 置換前の文字列, 置換後の文字列)」という形式で使用し、ここでは半角スペースを空文字('')に置き換えています。
mysql> update DemoTable1546 set Number=replace(Number,' ',''); Query OK, 3 rows affected (0.13 sec) Rows matched: 3 Changed: 3 Warnings: 0
5. 更新結果の確認
再度テーブルのレコードを確認しましょう。
mysql> select * from DemoTable1546;
実行結果は以下のとおりです。すべてのスペースが削除され、連続した数字になっていることがわかります。
+-------------------+ | Number | +-------------------+ | 1457890 | | 89789564903 | | 13457894866653534 | +-------------------+ 3 rows in set (0.00 sec)
まとめ
MySQLでスペースを含む数値文字列を整形する場合は、REPLACE()関数を組み合わせたUPDATE文を使用するのが最もシンプルな方法です。全角スペースやタブなど別の空白文字を除去したい場合も、同様にREPLACE()関数の第2引数に対象の文字を指定すれば対応できます。また、テーブル自体を更新せず検索結果だけ整形したいときは、SELECT文の中でREPLACE(Number,' ','')を使うことも可能です。
-
MySQLで秒を含まない形式の時間を抽出する方法
TIME_FORMAT関数を使って秒を除外した時間を抽出する MySQLで時間データから秒を取り除き、「時:分」の形式だけを抽出したい場合は、TIME_FORMAT() 関数を使用します。まずはサンプル用のテーブルを作成しましょう。 mysql> create table DemoTable1326 -> ( -> Arrivaltime time -> ); Query OK, 0 rows affected (0.50 sec) 次に、INSERTコマンドを使ってテーブルにレコードを挿入します。 mysql> insert into D
-
MySQLで単語間のスペースを削除する方法:REPLACE関数の使い方
MySQLで単語間のスペースを削除するには?MySQLで文字列内の特定のスペースを削除したい場合は、REPLACE()関数を使用します。REPLACE()関数は、指定した文字列を別の文字列に置き換えることができるため、スペースの削除にも活用できます。ここでは、「This is MySQL」のような文字列から「is」の後のスペースを削除する例を通して、具体的な手順を解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable1506 -> ( -> Title text -> );Query OK