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

【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文で対象データを確認してから実行することをおすすめします。

  1. MySQLで文字列カラムの数値だけをキャストして更新する方法

    MySQLで文字列カラムから数値をキャスト・更新するには? MySQLではCEIL()関数とCAST()を組み合わせることで、文字列型(VARCHAR)のカラムに格納された値を数値に変換し、別のINT型カラムへ更新することができます。ここでは、実際にテーブルを作成しながら手順を解説します。 1. テーブルの作成 まず、最初のカラムをVARCHAR型としたテーブルを作成します。 mysql> create table DemoTable -> ( -> Value varchar(20), -> UpdateValue int ->

  2. MySQLで特定の行と列に値を挿入(更新)する方法

    MySQLで特定の行と列に値を挿入する方法 MySQLでは、すでに存在するレコードの特定の行と列に値を設定(挿入)する場合、UPDATE文を使用します。ここでは、テーブルの作成からデータの挿入、特定のセルの値の更新、結果の確認までの手順を順番に解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable1569 -> ( -> StudentId varchar(10), -> StudentName varchar(20) -> ); Query