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

【MySQL】文字列から末尾の3文字だけを取得する方法|SUBSTR()関数の使い方

MySQLで文字列から末尾の数文字だけを取り出したい場合、SUBSTR()関数(またはその別名であるSUBSTRING()関数)を使うのが便利です。開始位置に負の値を指定すると、文字列の後ろから数えて切り出すことができます。

ここでは、実際にテーブルを作成して動作を確認してみましょう。

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

まず、以下のクエリでテーブルを作成します。

mysql> create table DemoTable (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(20));
Query OK, 0 rows affected (1.31 sec)

2. レコードの挿入

続いて、INSERT文を使ってサンプルデータを登録します。

mysql> insert into DemoTable(FirstName) values('John');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(FirstName) values('Carol');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable(FirstName) values('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(FirstName) values('David');
Query OK, 1 row affected (0.17 sec)

3. 登録データの確認

SELECT文でテーブルの中身を確認しておきましょう。

mysql> select *from DemoTable;

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

+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | John      |
|  2 | Carol     |
|  3 | Robert    |
|  4 | Chris     |
|  5 | David     |
+----+-----------+
5 rows in set (0.00 sec)

4. 各文字列から末尾3文字を取得する

すべての名前から最後の3文字を取得するには、SUBSTR()の第2引数に「-3」を指定します。負の値は「文字列の末尾から数えた位置」を意味します。

mysql> select substr(FirstName,-3) from DemoTable;

実行結果:

+----------------------+
| substr(FirstName,-3) |
+----------------------+
| ohn                  |
| rol                  |
| ert                  |
| ris                  |
| vid                  |
+----------------------+
5 rows in set (0.00 sec)

補足:RIGHT()関数でも同じ結果が得られる

末尾のN文字を取得するだけであれば、RIGHT()関数を使うとより直感的に書けます。

mysql> select right(FirstName, 3) from DemoTable;

SUBSTR()は途中の文字列を抜き出す用途にも使える汎用的な関数ですが、「末尾だけ」が目的ならRIGHT()の方が意図が伝わりやすいでしょう。状況に応じて使い分けてください。

  1. JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法

    MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI

  2. MySQLで文字列の先頭15文字だけを表示するクエリの書き方

    MySQLで文字列の先頭(左側)から指定した文字数だけを取り出すには、LEFT()関数を使用します。第1引数に対象の文字列、第2引数に取得したい文字数を指定するだけで、手軽に部分文字列を抽出できます。 この記事では、テーブルに登録されたタイトルの先頭15文字だけを表示する方法を、実際のSQLと実行結果付きで順を追って解説します。 1. サンプルテーブルを作成する まず、CREATE TABLE文でテーブルを作成します。 mysql> create table DemoTable     -> (    &nbs