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

MySQLで複数行の値を一括更新し左パディング(LPAD)する方法

MySQLでは、LPAD()関数を使うことで、文字列の左側に指定した文字を埋めて(左パディング)、複数行の値をまとめて更新できます。この記事では、実際のテーブル作成からデータ更新までの手順をサンプル付きで解説します。

1. サンプルテーブルの作成

まず、CREATE TABLE文でテーブルを作成します。

mysql> create table DemoTable
  -> (
  -> Number int
  -> );
Query OK, 0 rows affected (2.26 sec)

2. テストデータの挿入

INSERTコマンドを使って、いくつかのレコードを挿入します。あえて桁数が異なる数値を用意するのがポイントです。

mysql> insert into DemoTable values(857786);
Query OK, 1 row affected (0.26 sec)

mysql> insert into DemoTable values(89696);
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values(89049443);
Query OK, 1 row affected (0.25 sec)

3. 現在のレコードを確認する

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

mysql> select *from DemoTable;

出力結果

+----------+
| Number  |
+----------+
| 857786  |
| 89696  |
| 89049443 |
+----------+
3 rows in set (0.00 sec)

4. LPAD()関数で複数行の値を左パディングして更新

ここからが本題です。次のUPDATE文を実行すると、「桁数が7未満のレコードだけ」を抽出し、先頭に「9」を埋めて7桁に揃えることができます。

mysql> update DemoTable set Number=LPAD(Number, 7, "9") where length(Number) < 7;
Query OK, 2 rows affected (0.40 sec)
Rows matched: 2 Changed: 2 Warnings: 0

このクエリのポイントは以下の通りです。

  • LPAD(Number, 7, "9"):Numberの値を全体で7桁になるよう、足りない分だけ左側に「9」で埋めます。
  • where length(Number) < 7:すでに7桁以上あるレコードは対象外とし、条件を満たす複数行のみを一括更新します。

5. 更新後のレコードを確認する

もう一度SELECT文でテーブルの中身をチェックしましょう。

mysql> select *from DemoTable;

出力結果

+----------+
| Number  |
+----------+
| 9857786 |
| 9989696 |
| 89049443 |
+----------+
3 rows in set (0.00 sec)

まとめ

UPDATE文とLPAD()関数、さらにWHERE句でのlength()による絞り込みを組み合わせることで、特定の条件に合致する複数行の値を安全に左パディングできます。IDや会員番号など、固定桁数に揃えたいデータの一括整形に非常に便利なテクニックなので、ぜひ活用してください。

  1. MySQLで単一のWHERE句を使って複数行を一括更新する方法(IN句の使い方)

    MySQLでは、IN()句を活用することで、単一のWHERE句を使って複数の行を一度に更新できます。条件の異なる行ごとに個別のUPDATE文を実行する必要がなく、効率的なデータ操作が可能になります。ここでは、実際のサンプルコードを交えながら手順を詳しく解説します。 1. サンプルテーブルを作成する まず、デモ用のテーブル「DemoTable1420」を作成します。 mysql> create table DemoTable1420 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Fi

  2. MySQLでWHERE句に複数の条件を指定してデータを更新する方法

    MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&