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

SUBSTRING

説明

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

エイリアス

SUBSTR

構文

SUBSTRING(<str>, <pos> [, <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. 長さパラメータの指定
SELECT substring('abc1def', 2, 2);
+-----------------------------+
| substring('abc1def', 2, 2) |
+-----------------------------+
| bc |
+-----------------------------+