【MySQL】UPDATE文とTRIM()関数で列の値から特定の文字列を一括削除・更新する方法
MySQLで列の値から特定の文字列を削除して更新する方法
MySQLでは、UPDATE文とTRIM()関数を組み合わせることで、列内のすべての値から特定の文字列を一括で削除できます。本記事では、実際のテーブルを使った具体例をもとに、その手順をわかりやすく解説します。
サンプルデータの確認
ここでは、テーブル「Employee」の「Department」列のすべての値に「Dept.」という文字列が付いているケースを想定します。まず、現在のテーブルの状態を確認しましょう。
mysql> Select * from Employee; +------+----------------+------------+----------------------+ | Id | Name | Address | Department | +------+----------------+------------+----------------------+ | 100 | Raman | Delhi | IT Dept. | | 101 | Mohan | Haryana | History Dept. | | 102 | Shyam | Chandigarh | ENGLISH Dept. | | 103 | Sukhjeet Singh | Patiala | Computer Engg. Dept. | | 104 | Bimal Roy | Calcutta | Computer Engg. Dept. | +------+----------------+------------+----------------------+ 5 rows in set (0.01 sec)
TRIM()関数で文字列を削除して更新する
次のクエリを実行すると、「Department」列の各値から末尾の「Dept.」という文字列を削除し、テーブルを更新できます。
mysql> Update Employee set Department = TRIM(Trailing 'Dept.' FROM Department); Query OK, 5 rows affected (0.10 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)
実行結果を見ると、「IT Dept.」が「IT」に、「History Dept.」が「History」に変わるなど、すべての値から「Dept.」という文字列が取り除かれていることが確認できます。
TRIM()関数の構文とオプション
TRIM()関数には、削除する位置を指定するためのキーワードが用意されています。
- TRAILING:値の末尾から指定した文字列を削除します
- LEADING:値の先頭から指定した文字列を削除します
- BOTH:値の先頭と末尾の両方から指定した文字列を削除します
基本構文は以下の通りです。
TRIM([LEADING | TRAILING | BOTH] '削除したい文字列' FROM 対象の列名)
たとえば、値の先頭に付いた文字列を削除したい場合は、TRIM(LEADING '文字列' FROM 列名)のように指定します。用途に応じてこれらのオプションを使い分けることで、柔軟なデータ整形が可能になります。
まとめ
UPDATE文とTRIM()関数を組み合わせれば、列全体の値から不要な文字列を一括で除去できます。部署名やカテゴリ名など、共通の接頭辞・接尾辞が付いたデータを整理したい場合に非常に便利なテクニックです。ただし、UPDATEは元のデータを直接書き換えるため、実行前には必ずバックアップを取得するか、SELECT文で対象データを確認してから実行することをおすすめします。
-
MySQLで文字列カラムの数値だけをキャストして更新する方法
MySQLで文字列カラムから数値をキャスト・更新するには? MySQLではCEIL()関数とCAST()を組み合わせることで、文字列型(VARCHAR)のカラムに格納された値を数値に変換し、別のINT型カラムへ更新することができます。ここでは、実際にテーブルを作成しながら手順を解説します。 1. テーブルの作成 まず、最初のカラムをVARCHAR型としたテーブルを作成します。 mysql> create table DemoTable -> ( -> Value varchar(20), -> UpdateValue int ->
-
MySQLで特定の行と列に値を挿入(更新)する方法
MySQLで特定の行と列に値を挿入する方法 MySQLでは、すでに存在するレコードの特定の行と列に値を設定(挿入)する場合、UPDATE文を使用します。ここでは、テーブルの作成からデータの挿入、特定のセルの値の更新、結果の確認までの手順を順番に解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable1569 -> ( -> StudentId varchar(10), -> StudentName varchar(20) -> ); Query