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

【MySQL】全レコードを一括更新して先頭の文字だけ大文字にし、残りを小文字に変換するクエリ

はじめに

MySQLでは、カラム内の文字列の先頭の文字だけを大文字にし、残りの文字をすべて小文字に変換したいケースがあります。本記事では、CONCAT()UPPER()LOWER()LEFT()SUBSTRING()といった文字列関数を組み合わせたUPDATEクエリを使って、テーブル内のすべてのレコードを一括更新する方法を解説します。

サンプルテーブルの作成

まず、テーブルを作成しましょう。

mysql> create table DemoTable2017
    -> (
    -> Name text
    -> );
Query OK, 0 rows affected (0.55 sec)

レコードの挿入

INSERTコマンドを使って、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable2017 values('JOHN SMITH,MYSQL');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable2017 values('DAVID MILLER,MONGODB');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable2017 values('CHRIS BROWN,JAVA');
Query OK, 1 row affected (0.11 sec)

レコードの表示

SELECT文を使って、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable2017;

以下のような出力が得られます。

+----------------------+
| Name                 |
+----------------------+
| JOHN SMITH,MYSQL     |
| DAVID MILLER,MONGODB |
| CHRIS BROWN,JAVA     |
+----------------------+
3 rows in set (0.00 sec)

先頭文字のみ大文字に変換するUPDATEクエリ

最初の文字だけを大文字にし、残りをすべて小文字にするクエリは以下のとおりです。

mysql> update DemoTable2017
   -> set Name=REPLACE(CONCAT(UPPER(LEFT(Name, 1)), 
LOWER(SUBSTRING(Name, 2))),' , ', ', ');
Query OK, 3 rows affected (0.16 sec)
Rows matched: 3 Changed: 3 Warnings: 0

このクエリの仕組みは以下のとおりです。

  • LEFT(Name, 1):文字列の先頭1文字を取り出し、UPPER()で大文字に変換します。
  • SUBSTRING(Name, 2):2文字目以降の文字列を取り出し、LOWER()で小文字に変換します。
  • CONCAT():大文字にした先頭文字と、小文字にした残りの部分を結合します。
  • REPLACE():カンマの前に余計な空白が含まれている場合に整形します。

更新結果の確認

テーブルのレコードを再度確認してみましょう。

mysql> select *from DemoTable2017;

以下のような出力が得られます。

+----------------------+
| Name                 |
+----------------------+
| John smith,mysql     |
| David miller,mongodb |
| Chris brown,java     |
+----------------------+
3 rows in set (0.00 sec)

すべてのレコードが、先頭の文字のみ大文字、残りは小文字に変換されていることが確認できます。

まとめ

MySQLで文字列の先頭のみ大文字にし、残りを小文字に変換するには、CONCAT(UPPER(LEFT(カラム名, 1)), LOWER(SUBSTRING(カラム名, 2)))という関数の組み合わせをUPDATE文で使うのが最もシンプルです。登録データの表記ゆれを一括で整形したい場合に、ぜひ活用してみてください。

  1. MySQLで通貨形式を表示する方法:FORMAT()関数の使い方を解説

    MySQLで通貨形式を設定する方法MySQLでは、FORMAT()関数を使うことで、数値データを通貨として見やすい形式に整形して表示できます。この記事では、実際にテーブルを作成し、金額データを「USD 90,948,484.00」のような通貨表記へ変換する手順を、サンプルコード付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、金額を格納するためのテーブルを作成します。ここでは、小数点以下4桁まで保持できるDECIMAL型を使用します。mysql> create table DemoTable    -> ( &nb

  2. MySQLクエリで列名にエイリアス(別名)を設定する方法

    MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。列名にエイリアスを設定する基本構文SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2FROM yourTableName anyAliasName;このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設