MySQLのTRIM()関数で全行の余分な空白を削除し、テーブルを一括更新する方法
MySQLのTRIM()関数で全行の空白を削除し、テーブルを一括更新する方法
テーブルのカラムに余分な空白(スペース)を含むデータが大量に格納されている場合、ストレージ容量の無駄になるだけでなく、検索や比較の際にも支障をきたすことがあります。MySQLではTRIM()関数を使うことで、たった1つのUPDATEクエリで全行の空白を削除し、テーブルを同時に更新できます。
ここでは、すべての行に空白が含まれている「Employee」テーブルを例に、具体的な手順を解説します。
例:空白を含むEmployeeテーブル
mysql> Select * from Employee; +------+----------------------+----------------------+----------------------+ | Id | Name | Address | Department | +------+----------------------+----------------------+----------------------+ | 100 | Raman | Delhi | IT | | 101 | Mohan | Haryana | History | | 102 | Shyam | Chandigarh | ENGLISH | | 103 | Sukhjeet Singh | Patiala | Computer Engg. | | 104 | Bimal Roy | Calcutta | Computer Engg. | +------+----------------------+----------------------+----------------------+ 5 rows in set (0.00 sec)
上記の結果セットを見ると、Employeeテーブルの各行に多くの不要な空白が含まれていることがわかります。これらの空白は、次のようなUPDATE文で一括して削除・更新できます。
TRIM()関数を使った更新クエリ
mysql> Update Employee SET Id = TRIM(Id), Name = TRIM(Name), Address = TRIM(Address), DEPARTMENT = TRIM(Department); Query OK, 5 rows affected (0.24 sec) Rows matched: 5 Changed: 5 Warnings: 0 mysql> Select * from Employee; +------+----------------+------------+----------------+ | Id | Name | Address | Department | +------+----------------+------------+----------------+ | 100 | Raman | Delhi | IT | | 101 | Mohan | Haryana | History | | 102 | Shyam | Chandigarh | ENGLISH | | 103 | Sukhjeet Singh | Patiala | Computer Engg. | | 104 | Bimal Roy | Calcutta | Computer Engg. | +------+----------------+------------+----------------+ 5 rows in set (0.00 sec)
更新後の結果セットを確認すると、すべての余分な空白が取り除かれ、テーブルが正しく更新されていることがわかります。
補足:TRIM()関数のポイント
TRIM()関数は、文字列の先頭と末尾にある空白を削除します。用途に応じて以下の関数も活用できます。
- LTRIM():文字列の先頭の空白のみを削除
- RTRIM():文字列の末尾の空白のみを削除
また、UPDATE文にWHERE句を組み合わせれば、特定の行だけを対象に空白を削除することも可能です。データのクレンジングやメンテナンス作業において、TRIM()関数は非常に便利なツールといえます。
-
MySQLでテーブルから最後の行を除くすべての行を取得する方法
MySQLでテーブルから最後の1行だけを除外して、それ以外のすべての行を取得したい場合は、!=(等しくない)演算子とサブクエリを組み合わせて使用します。サブクエリでID列の最大値(=最後の行)を取得し、その値と一致しない行だけを抽出する仕組みです。基本構文SELECT * FROM テーブル名 WHERE ID列名 != (SELECT MAX(ID列名) FROM テーブル名);実際にテーブルを作成して確認するそれでは、具体的な例を使って動作を確認してみましょう。まず、以下のクエリでテーブルを作成します。mysql> CREATE TABLE AllRecordsExceptLastO
-
MySQLですべての行を更新し、文字列内および前後の不要な空白を一括削除する方法
MySQLで文字列内および文字列の前後にある不要な空白を削除するには、TRIM()関数を使用します。TRIM()は、文字列の先頭と末尾から余分なスペースを取り除くことができる便利な関数です。ここでは、実際にテーブルを作成し、全行を更新する手順を解説します。サンプルテーブルの作成まず、動作を確認するためのテーブルを作成しましょう。mysql> create table DemoTable1405 -> ( -> FirstName varchar(20), &