【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文で使うのが最もシンプルです。登録データの表記ゆれを一括で整形したい場合に、ぜひ活用してみてください。
-
MySQLで通貨形式を表示する方法:FORMAT()関数の使い方を解説
MySQLで通貨形式を設定する方法MySQLでは、FORMAT()関数を使うことで、数値データを通貨として見やすい形式に整形して表示できます。この記事では、実際にテーブルを作成し、金額データを「USD 90,948,484.00」のような通貨表記へ変換する手順を、サンプルコード付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、金額を格納するためのテーブルを作成します。ここでは、小数点以下4桁まで保持できるDECIMAL型を使用します。mysql> create table DemoTable -> ( &nb
-
MySQLクエリで列名にエイリアス(別名)を設定する方法
MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。列名にエイリアスを設定する基本構文SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2FROM yourTableName anyAliasName;このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設