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

【MySQL】1回のクエリでテーブル内のすべてのカラムの大文字・小文字を一括変換する方法

MySQLでは、UPDATE文とLOWER()関数を組み合わせることで、テーブル内のすべてのフィールド(カラム)の大文字を小文字に一括変換できます。本記事では、サンプルテーブルを作成し、実際にデータを挿入してから、1回の呼び出しで全カラムの文字ケースを変換する手順を解説します。

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

まず、以下のようにテーブルを作成します。

mysql> create table DemoTable
(
    Id varchar(100),
    StudentFirstName varchar(20),
    StudentLastName varchar(20),
    StudentCountryName varchar(10)
);
Query OK, 0 rows affected (0.61 sec)

2. テストデータの挿入

INSERTコマンドを使って、いくつかのレコードを登録します。

mysql> insert into DemoTable values('STU-101','John','Smith','US');
Query OK, 1 row affected (0.59 sec)
mysql> insert into DemoTable values('STU-102','John','Doe','UK');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('STU-103','David','Miller','AUS');
Query OK, 1 row affected (0.19 sec)

3. 現在のデータを確認

SELECT文で全レコードを表示してみましょう。現時点では、Idや氏名、国名がすべて大文字で登録されていることがわかります。

mysql> select *from DemoTable;

実行結果:

+---------+------------------+-----------------+--------------------+
| Id      | StudentFirstName | StudentLastName | StudentCountryName |
+---------+------------------+-----------------+--------------------+
| STU-101 | John             | Smith           | US                 |
| STU-102 | John             | Doe             | UK                 |
| STU-103 | David            | Miller          | AUS                |
+---------+------------------+-----------------+--------------------+
3 rows in set (0.00 sec)

4. LOWER()関数で全カラムを一括変換する

ここがポイントです。UPDATE文の中で、各カラムに対してLOWER()関数を適用すると、1回のクエリでテーブル全体の文字ケースを変換できます。

mysql> update DemoTable
    set Id=lower(Id),
    StudentFirstName=lower(StudentFirstName),
    StudentLastName=lower(StudentLastName),
    StudentCountryName=lower(StudentCountryName);
Query OK, 3 rows affected (0.22 sec)
Rows matched : 3  Changed : 3  Warnings : 0

5. 変換結果の確認

もう一度SELECT文を実行して、変換が正しく反映されたか確認しましょう。

mysql> select *from DemoTable;

実行結果:

+---------+------------------+-----------------+--------------------+
| Id      | StudentFirstName | StudentLastName | StudentCountryName |
+---------+------------------+-----------------+--------------------+
| stu-101 | john             | smith           | us                 |
| stu-102 | john             | doe             | uk                 |
| stu-103 | david            | miller          | aus                |
+---------+------------------+-----------------+--------------------+
3 rows in set (0.00 sec)

このように、すべてのカラムの値が小文字に変換されました。

補足:大文字に変換したい場合

逆に、小文字を大文字へ統一したい場合は、UPPER()関数を使用します。使い方はLOWER()とまったく同じです。

UPDATE DemoTable
SET Id = UPPER(Id),
    StudentFirstName = UPPER(StudentFirstName);

まとめ

  • LOWER()関数で大文字→小文字、UPPER()関数で小文字→大文字に変換できる。
  • UPDATE文のSET句で複数カラムを同時に指定すれば、1回のクエリでテーブル全体の文字ケースを一括変換可能。
  • 大量データを扱う場合は、実行前にバックアップを取っておくと安全です。
  1. MySQLルートパスワードをリセットまたは変更する方法【ALTER USERコマンド解説】

    MySQLのrootパスワードをリセットまたは変更するには、まず管理者モードでMySQLにログインする必要があります。ログイン後、mysqlデータベースに切り替えて、登録されているすべてのユーザーとホスト情報を確認できます。 1. ユーザー一覧の確認 以下のクエリを実行して、現在存在するユーザーとホストの一覧を表示します。 SELECT user,host FROM user; 実行結果は次のとおりです。 +------------------+-----------+ | user | host | +------------------+------

  2. MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方

    MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ