MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

【MySQL】文字列の先頭1桁を削除するクエリの書き方

MySQLで文字列の先頭にある桁(最初の1文字)を削除したい場合は、SUBSTR()関数を使用します。SUBSTR()は指定した位置から文字列を切り出す関数で、開始位置に「2」を指定することで、1文字目を除外した残りの文字列を取得できます。

SUBSTR()を使った基本構文

UPDATE テーブル名 SET カラム名 = SUBSTR(カラム名, 2);

実際の使用例

1. テーブルを作成する

まず、サンプル用のテーブルを作成します。

mysql> CREATE TABLE DemoTable607 (Value VARCHAR(100));
Query OK, 0 rows affected (0.69 sec)

2. レコードを挿入する

INSERTコマンドでいくつかのデータを追加します。

mysql> INSERT INTO DemoTable607 VALUES('83967364');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable607 VALUES('10939432');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable607 VALUES('932111');
Query OK, 1 row affected (0.16 sec)

3. 現在のデータを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> SELECT * FROM DemoTable607;

実行結果は以下の通りです。

+----------+
| Value    |
+----------+
| 83967364 |
| 10939432 |
| 932111   |
+----------+
3 rows in set (0.00 sec)

先頭の桁を削除するUPDATEクエリ

以下が、先頭の1文字を削除するためのMySQLクエリです。

mysql> UPDATE DemoTable607 SET Value = SUBSTR(Value, 2);
Query OK, 3 rows affected (0.14 sec)
Rows matched: 3 Changed: 3 Warnings: 0

更新後のデータを確認する

もう一度テーブルの内容を確認してみます。

mysql> SELECT * FROM DemoTable607;

実行結果:

+---------+
| Value   |
+---------+
| 3967364 |
| 0939432 |
| 32111   |
+---------+
3 rows in set (0.00 sec)

ポイント解説

SUBSTR(Value, 2)は、文字列の2文字目以降をすべて返します。UPDATE文でこの結果をカラムに代入し直すことで、先頭の1文字を削除した状態にデータを一括更新できます。

なお、SUBSTR()はSUBSTRING()の別名(シノニム)であり、どちらを使用しても同じ動作になります。また、WHERE句を組み合わせれば、特定の条件に一致する行だけを対象に更新することも可能です。

  1. MySQLで角括弧([])で囲まれたテキストを削除する方法

    MySQLでは、REPLACE()、SUBSTRING()、LOCATE()といった文字列関数を組み合わせることで、角括弧 [ ] で囲まれた部分のテキストを削除できます。この記事では、実際にテーブルを作成しながら、その手順とクエリの仕組みをわかりやすく解説します。 1. テーブルの作成 まず、サンプル用のテーブルを作成します。 mysql> create table DemoTable -> ( -> Name text -> ); Query OK, 0 rows affected (0.47 sec) 2. レコードの挿入 INSERTコマ

  2. MySQLで末尾のスペースを削除する方法:RTRIM()関数の使い方

    MySQLで文字列の末尾(右側)のスペースを削除したい場合は、RTRIM()関数を使用します。この記事では、実際にテーブルを作成し、データを挿入して、RTRIM()を使って末尾の余分なスペースを取り除く手順を解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> FirstName varchar(50) -> ); Query OK, 0 rows affected (1.38 sec)ここでは、FirstNameというvarchar型のカラムを