メインコンテンツまでスキップ
バージョン: 26.x

SUBSTRING

説明

SUBSTRING関数は文字列から部分文字列を抽出するために使用されます。開始位置と長さを指定でき、前方向と後方向の両方の抽出をサポートしています。文字列内の最初の文字の位置は1です。

別名

SUBSTR

MID

構文

SUBSTRING(<str>, <pos> [, <len>])

SUBSTRING(<str> FROM <pos> [FOR <len>])

パラメータ

Parameterデスクリプション
<str>ソース文字列。型: VARCHAR
<pos>開始位置、負の値も可能。型: INT
<len>オプションパラメータ、抽出する長さ。型: INT

Return Value

VARCHAR型を返し、抽出された部分文字列を表します。

特殊なケース:

  • いずれかのパラメータがNULLの場合、NULLを返します
  • posが0の場合、空文字列を返します
  • posが負の値の場合、文字列の末尾から逆方向にカウントします
  • posが文字列の長さを超える場合、空文字列を返します
  • lenが指定されない場合、posから文字列の末尾までのすべての文字を返します

Examples

  1. 基本的な使用方法(開始位置を指定)
SELECT substring('abc1', 2);
+-----------------------------+
| substring('abc1', 2) |
+-----------------------------+
| bc1 |
+-----------------------------+
  1. 負の位置の使用
SELECT substring('abc1', -2);
+-----------------------------+
| substring('abc1', -2) |
+-----------------------------+
| c1 |
+-----------------------------+
  1. positionが0の場合
SELECT substring('abc1', 0);
+----------------------+
| substring('abc1', 0) |
+----------------------+
| |
+----------------------+
  1. 位置が文字列長を超えています
SELECT substring('abc1', 5);
+-----------------------------+
| substring('abc1', 5) |
+-----------------------------+
| |
+-----------------------------+
  1. length パラメータの指定
SELECT substring('abc1def', 2, 2);
+-----------------------------+
| substring('abc1def', 2, 2) |
+-----------------------------+
| bc |
+-----------------------------+
  1. from と for の使用
SELECT substring('foobarbar' FROM 4 FOR 3);
+-------------------------------------+
| substring('foobarbar' FROM 4 FOR 3) |
+-------------------------------------+
| bar |
+-------------------------------------+
  1. fromの使用
SELECT substring('foobarbar' FROM 4);
+-------------------------------+
| substring('foobarbar' FROM 4) |
+-------------------------------+
| barbar |
+-------------------------------+
  1. エイリアスMIDを使用したNULLの例
SELECT MID(NULL, 2);
+--------------+
| MID(NULL, 2) |
+--------------+
| NULL |
+--------------+
  1. エイリアス SUBSTR の使用
SELECT SUBSTR('Hello World', 7, 5);
+------------------------------+
| SUBSTR('Hello World', 7, 5) |
+------------------------------+
| World |
+------------------------------+
  1. UTF-8マルチバイト文字
SELECT SUBSTRING('ṭṛì ḍḍumai hello', 5, 6);
+--------------------------------------+
| SUBSTRING('ṭṛì ḍḍumai hello', 5, 6) |
+--------------------------------------+
| ḍḍumai |
+--------------------------------------+

Keywords

SUBSTRING, SUBSTR, MID