MySQLですべてのレコードの先頭2文字を削除する方法
MySQLでカラム(フィールド)に格納されたすべての値から先頭2文字を削除したい場合は、SUBSTRING()関数を使用します。SUBSTRING()関数は、指定した位置以降の文字列を取り出すことができる文字列関数です。
基本構文
先頭2文字を削除するには、UPDATE文とSUBSTRING()関数を組み合わせて次のように記述します。
UPDATE yourTableName SET yourColumnName = SUBSTRING(yourColumnName, 3) WHERE yourCondition;
ポイントは「3」を指定する点です。SUBSTRING(文字列, 3) は「3文字目以降を取得する」という意味になるため、結果的に先頭の2文字が取り除かれた文字列が得られます。
実際に試してみよう
1. テーブルの作成
まず、動作を確認するためのサンプルテーブルを作成します。
mysql> create table RemoveFirstTwoCharacterDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> StringValue varchar(30),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (1.04 sec)2. テストデータの挿入
INSERT文を使って、いくつかのレコードを挿入します。
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('U:100');
Query OK, 1 row affected (0.13 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('S:20');
Query OK, 1 row affected (0.21 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('N/A');
Query OK, 1 row affected (0.12 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('T:8');
Query OK, 1 row affected (0.16 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('N/A');
Query OK, 1 row affected (0.12 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('W:99');
Query OK, 1 row affected (0.19 sec)3. データの確認
SELECT文で登録済みのデータを表示してみましょう。
mysql> select *from RemoveFirstTwoCharacterDemo;
実行結果は以下の通りです。
+----+-------------+ | Id | StringValue | +----+-------------+ | 1 | U:100 | | 2 | S:20 | | 3 | N/A | | 4 | T:8 | | 5 | N/A | | 6 | W:99 | +----+-------------+ 6 rows in set (0.00 sec)
4. 先頭2文字を削除するUPDATE文の実行
ここでは、「N/A」以外のレコードに対して先頭2文字を削除する例を紹介します。WHERE句で条件を指定することで、特定のレコードだけを対象に処理できます。
mysql> update RemoveFirstTwoCharacterDemo set StringValue=SUBSTRING(StringValue,3)
-> where StringValue <> 'N/A';
Query OK, 4 rows affected (0.27 sec)
Rows matched: 4 Changed: 4 Warnings: 05. 更新結果の確認
再度SELECT文を実行して、更新後のデータを確認しましょう。
mysql> select *from RemoveFirstTwoCharacterDemo;
実行結果を見ると、「U:」「S:」などの接頭辞が取り除かれ、数値部分だけが残っていることがわかります。「N/A」のレコードはWHERE句の条件により変更されていません。
+----+-------------+ | Id | StringValue | +----+-------------+ | 1 | 100 | | 2 | 20 | | 3 | N/A | | 4 | 8 | | 5 | N/A | | 6 | 99 | +----+-------------+ 6 rows in set (0.00 sec)
まとめ
MySQLでカラムの先頭2文字を削除するには、UPDATE文とSUBSTRING(カラム名, 3)を組み合わせるのが最も簡単な方法です。WHERE句を活用すれば、特定の条件を満たすレコードのみを対象にすることも可能です。なお、全レコードを一括で更新したい場合はWHERE句を省略しても構いませんが、誤操作を防ぐためにも、事前にSELECT文で対象データを確認しておくことをおすすめします。
-
MySQLで末尾のスペースを削除する方法:RTRIM()関数の使い方
MySQLで文字列の末尾(右側)のスペースを削除したい場合は、RTRIM()関数を使用します。この記事では、実際にテーブルを作成し、データを挿入して、RTRIM()を使って末尾の余分なスペースを取り除く手順を解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> FirstName varchar(50) -> ); Query OK, 0 rows affected (1.38 sec)ここでは、FirstNameというvarchar型のカラムを
-
MySQLでハイフンより前の文字列を抽出する方法|SUBSTRING_INDEX関数の使い方
MySQLでは、SUBSTRING_INDEX() 関数を使うことで、特定の区切り文字(この例ではハイフン「-」)より前にある文字列を簡単に抽出できます。本記事では、実際にテーブルを作成し、データを挿入して、ハイフンより前の部分だけを取得する手順を解説します。 1. サンプルテーブルの作成 まず、以下のコマンドでサンプル用のテーブルを作成します。 mysql> create table DemoTable1857 ( Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) 2. テストデータの挿入 次に、I