(最終更新月:2023年10月)
✔このような方へ向けて書かれた記事となります
「mysql substring関数の使い方がわからない」
「mysql substring関数の書き方を学びたい」
「mysql substring関数の利用例を見てみたい」
✔当記事を通じてお伝えすること
- mysql substring関数の基本知識
- mysql substring関数の正確な書き方とその応用
- mysql substring関数の実例
当記事では、mysql substring関数の基本概念から、その詳細なオプション活用法まで、具体的な例を引用しながら詳しく説明しています。
ぜひ最後までお読みいただき、mysql substring関数のマスタリーにお役立てください。
MySQL文字列関数の基本
MySQLには多数の文字列関数が提供されていますが、中でも”substring”関数は特に頻繁に使用されるものです。
- 基本的な文字列関数の一部を知る
- “substring”関数とは?
基本的な文字列関数の一部を知る
MySQLでは、以下のような文字列関数が提供されています。
- LENGTH()
- CONCAT()
- UPPER()
- LOWER()
これらの関数を利用することで、文字列の長さの取得や文字列の結合、大文字・小文字への変換など、sさまざまな操作を簡単におこなえます。
“substring”関数とは?
“substring”関数は、文字列の一部を抽出するための関数です。
この関数により、指定した位置から特定の長さだけ文字列を取得できます。
“substring”関数の使用法
“substring”関数は非常に柔軟性が高く、さまざまな方法で文字列を抽出できます。
- 文字列を抽出する基本
- 文字列の中間から最後までを抽出する方法
- 文字列の後ろから抽出する方法(“Right”使用例)
- 文字列の前から抽出する方法(“Left”使用例)
文字列を抽出する基本
基本的な使用方法は以下のとおりです。
SUBSTRING(string, start, length);
例えば、文字列”OpenAI”から”pen”を取得する場合は以下のようにします。
mysql> SELECT SUBSTRING('itc.tokyo', 5, 5);
+------------------------------+
| SUBSTRING('itc.tokyo', 5, 5) |
+------------------------------+
| tokyo |
+------------------------------+
1 row in set (0.00 sec)
文字列の中間から最後までを抽出する方法
“substring”を使って、指定した位置から文字列の最後までを抽出するには、lengthパラメータを省略します。
SELECT SUBSTRING('itc.tokyo', 3)
このコードは、”c.tokyo”を返します。
文字列の後ろから抽出する方法(“Right”使用例)
文字列の後ろから指定した長さだけ文字列を取得する場合は、RIGHT()
関数を使用します。
mysql> SELECT RIGHT('itc.tokyo', 3);
+-----------------------+
| RIGHT('itc.tokyo', 3) |
+-----------------------+
| kyo |
+-----------------------+
1 row in set (0.00 sec)
このコードは、”kyo”を返します。
文字列の前から抽出する方法(“Left”使用例)
文字列の前から指定した長さだけ文字列を取得する場合は、LEFT()
関数を使用します。
mysql> SELECT LEFT('itc.tokyo', 3);
+----------------------+
| LEFT('itc.tokyo', 3) |
+----------------------+
| itc |
+----------------------+
1 row in set (0.00 sec)
このコードは、”itc”を返します。
“substring”関数の応用例
こちらでは実際の業務における応用例をご覧いただきます。
- メールアドレスのドメインのみを取得
- 商品コードの特定部分を抽出
メールアドレスのドメインのみを取得
メールアドレスを抽出するためのUserテーブルです。
| id | name | email |
|----|-----------|----------------------|
| 1 | Alice | alice@example.com |
| 2 | Bob | bob@gmail.com |
| 3 | Charlie | charlie@yahoo.com |
抽出するためのSQL文はこちら。
SELECT name,
SUBSTRING(email, LOCATE('@', email) + 1) AS domain
FROM users;
結果例です。
| name | domain |
|-----------|--------------|
| Alice | example.com |
| Bob | gmail.com |
| Charlie | yahoo.com |
商品コードの特定部分を抽出
商品コードなどを保存しているProductテーブルはこちら。
| id | product_code |
|----|---------------|
| 1 | ABC-12345-XYZ |
| 2 | ABC-67890-XYZ |
SQL文は以下のとおりです。
SELECT product_code,
CONCAT('PROD-', SUBSTRING(product_code, 5, 5)) AS new_code
FROM products;
結果になります。
| product_code | new_code |
|---------------|------------|
| ABC-12345-XYZ | PROD-12345 |
| ABC-67890-XYZ | PROD-67890 |
“substring”関数を活用した効率的なデータ操作手法
“substring”関数は単に文字列の一部を取得するだけでなく、ほかのSQL関数やクエリと組み合わせることで、さらに高度なデータ操作が可能です。
こちらでは文字列中に特定の文字が現れる位置を見つけ出すLOCATE()
関数と組み合わせる例をご覧いただきます。
LOCATEで見つけた位置から文字列を抽出する方法です。
SELECT SUBSTRING(email, LOCATE('@', email) + 1) AS domain
FROM users;
このSQLクエリでは、users
テーブルのemail
カラムから、”@”の後のドメイン名だけを抽出しています。
LOCATE()
関数は指定した文字が現れる位置を返すため、その位置から後の文字列を”substring”関数で抽出できるのです。
まとめ
当記事では、MySQLの”substring”関数について学習してきました。
- “substring”関数の活用により、文字列データの柔軟かつ効率的な操作が可能となりる
- データ解析やレポート作成、さらにはデータクレンジングなどの作業が大幅に効率化される
- ほかの文字列関数と組み合わせることでより効率が高くなる
データベース操作のプロフェッショナルを目指すすべての方々に、”substring”関数の習得と活用を強くおすすめします。