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

【MySQL】文字列の末尾に特定の文字が存在する場合、その文字を削除する方法

MySQLではTRIM()関数を使うことで、文字列の末尾にある特定の文字を簡単に削除できます。この記事では、実際にテーブルを作成し、データの登録から削除クエリの実行までの手順を解説します。

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

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

mysql> create table DemoTable
    (
    UserId varchar(100)
    );
Query OK, 0 rows affected (0.63 sec)

「DemoTable」という名前のテーブルに、最大100文字の文字列を格納できる「UserId」カラムを定義しました。

2. テストデータの挿入

次に、INSERTコマンドを使ってレコードを挿入します。ここでは、一部の文字列の末尾に疑問符(?)を付けて登録しています。

mysql> insert into DemoTable values('User123?');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values('User777');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values('User456');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values('User133?');
Query OK, 1 row affected (0.16 sec)

3. 登録データの確認

SELECT文ですべてのレコードを表示して確認しましょう。

mysql> select *from DemoTable;

実行すると、以下のような結果が得られます。

+----------+
| UserId   |
+----------+
| User123? |
| User777  |
| User456  |
| User133? |
+----------+
4 rows in set (0.00 sec)

「User123?」と「User133?」の2件に、末尾に「?」が含まれていることがわかります。

4. 末尾の特定文字を削除するクエリ

それが本題です。文字列の末尾に特定の文字(この場合は「?」)が存在する場合に、その文字を取り除くには、以下のクエリを実行します。

mysql> select trim(trailing '?' from UserId) from DemoTable;

実行結果は以下の通りです。

+--------------------------------+
| trim(trailing '?' from UserId) |
+--------------------------------+
| User123                        |
| User777                        |
| User456                        |
| User133                        |
+--------------------------------+
4 rows in set (0.04 sec)

末尾の「?」がすべて削除され、「User123」「User777」「User456」「User133」と表示されました。「?」が付いていない文字列はそのまま出力されるため、データに影響を与えることなく処理できるのがポイントです。

TRIM()関数の構文について

TRIM()関数では、削除する位置を指定することができます。

  • TRAILING: 文字列の末尾から指定した文字を削除
  • LEADING: 文字列の先頭から指定した文字を削除
  • BOTH: 文字列の先頭と末尾の両方から指定した文字を削除

今回のように末尾の文字だけを削除したい場合は「TRAILING」を指定します。なお、削除対象の文字が見つからない場合は、元の文字列がそのまま返されます。

  1. MySQLで正規表現(REGEXP)を使って特定の文字列を抽出する方法

    MySQLでは、REGEXP演算子を使うことで、正規表現にマッチするレコードだけを簡単に抽出できます。本記事では、実際にテーブルを作成し、データを挿入したうえで、正規表現による文字列検索の具体的な手順を解説します。 1. サンプルテーブルの作成 まず、CREATE TABLE文を使用してテーブルを作成します。 mysql> create table DemoTable649 (Value text); Query OK, 0 rows affected (0.68 sec) 2. テーブルへのデータ挿入 次に、INSERTコマンドを使ってサンプルデータを登録します。ここでは桁数の異な

  2. MySQLで末尾の文字列に基づいてレコードをソートする方法

    MySQLで文字列の末尾部分(例:「-D」や「-Smith」など)に基づいてレコードをソートしたい場合は、CASE式とORDER BY句を組み合わせることで実現できます。ここでは、実際のサンプルコードを使いながら、手順をわかりやすく解説します。 1. サンプルテーブルの作成 まずはデモ用のテーブルを作成します。顧客ID(ClientId)を自動採番の主キーとし、顧客名(ClientName)を格納するシンプルな構造です。 mysql> create table DemoTable -> ( -> ClientId int NOT NULL AUTO_INC