【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()の方が意図が伝わりやすいでしょう。状況に応じて使い分けてください。
-
JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI
-
MySQLで文字列の先頭15文字だけを表示するクエリの書き方
MySQLで文字列の先頭(左側)から指定した文字数だけを取り出すには、LEFT()関数を使用します。第1引数に対象の文字列、第2引数に取得したい文字数を指定するだけで、手軽に部分文字列を抽出できます。 この記事では、テーブルに登録されたタイトルの先頭15文字だけを表示する方法を、実際のSQLと実行結果付きで順を追って解説します。 1. サンプルテーブルを作成する まず、CREATE TABLE文でテーブルを作成します。 mysql> create table DemoTable -> ( &nbs