メインコンテンツまでスキップ

SUBSTRING

説明

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

エイリアス

SUBSTR

構文

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

パラメータ

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

戻り値

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

特殊なケース:

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

  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 |
+-----------------------------+