MySQLですべての行を更新し、文字列内および前後の不要な空白を一括削除する方法
MySQLで文字列内および文字列の前後にある不要な空白を削除するには、TRIM()関数を使用します。TRIM()は、文字列の先頭と末尾から余分なスペースを取り除くことができる便利な関数です。ここでは、実際にテーブルを作成し、全行を更新する手順を解説します。
サンプルテーブルの作成
まず、動作を確認するためのテーブルを作成しましょう。
mysql> create table DemoTable1405 -> ( -> FirstName varchar(20), -> LastName varchar(20) -> ); Query OK, 0 rows affected (0.55 sec)
レコードの挿入
insert文を使って、意図的に空白を含んだレコードを挿入します。
mysql> insert into DemoTable1405 values('' Chris',' Brown ');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1405 values('David ',' Miller ');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable1405 values('' Carol ',' Taylor ');
Query OK, 1 row affected (0.19 sec)現在のデータを確認
select文でテーブル内の全レコードを表示してみましょう。
mysql> select * from DemoTable1405;
実行すると、次のような出力が得られます。
+------------------+----------------+ | FirstName | LastName | +------------------+----------------+ | Chris | Brown | | David | Miller | | Carol | Taylor | +------------------+----------------+ 3 rows in set (0.00 sec)
ご覧のとおり、各カラムの値に不要な空白が含まれていることがわかります。
TRIM()を使ってすべての行を更新
以下が、不要な空白をすべて削除して全行を更新するクエリです。UPDATE文とTRIM()関数を組み合わせることで、複数のカラムに対して一括で空白を除去できます。
mysql> update DemoTable1405 set FirstName=trim(FirstName),LastName=trim(LastName); Query OK, 3 rows affected (0.18 sec) Rows matched: 3 Changed: 3 Warnings: 0
更新後の確認
もう一度テーブルのレコードを確認してみましょう。
mysql> select * from DemoTable1405;
実行結果は次のとおりです。
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Chris | Brown | | David | Miller | | Carol | Taylor | +-----------+----------+ 3 rows in set (0.00 sec)
このように、TRIM()関数を使えば、文字列の先頭と末尾にある不要な空白を簡単に削除できます。なお、TRIM()はデフォルトでは半角スペースのみを削除するため、全角スペースやタブなども対象にしたい場合は、TRIM(BOTH ' ' FROM カラム名)のように削除したい文字を明示的に指定してください。
-
MySQLで最初と最後の行を除外して、それ以外のすべての行を取得する方法
MySQLで最初と最後の行を除外して、それ以外のすべての行を取得する方法MySQLでテーブルの最初と最後の行を除外し、それ以外のすべての行を取得するには、サブクエリとMIN()関数・MAX()関数を組み合わせて使用します。この記事では、実際のサンプルコードを使いながら手順をわかりやすく解説します。サンプルテーブルの作成まず、以下のSQL文を実行してテーブルを作成します。mysql> create table DemoTable1917 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentCode
-
【MySQL】全レコードを一括更新して先頭の文字だけ大文字にし、残りを小文字に変換するクエリ
はじめに MySQLでは、カラム内の文字列の先頭の文字だけを大文字にし、残りの文字をすべて小文字に変換したいケースがあります。本記事では、CONCAT()、UPPER()、LOWER()、LEFT()、SUBSTRING()といった文字列関数を組み合わせたUPDATEクエリを使って、テーブル内のすべてのレコードを一括更新する方法を解説します。 サンプルテーブルの作成 まず、テーブルを作成しましょう。 mysql> create table DemoTable2017 -> ( -> Name text -> ); Query OK, 0 rows