The SUBSTRING function is used to extract a substring from a string. You can specify the starting position and length, supporting both forward and backward extraction. The position of the first character in the string is 1.
SUBSTR
MID
SUBSTRING(<str>, <pos> [, <len>]) SUBSTRING(<str> FROM <pos> [FOR <len>])
| Parameter | Description |
|---|---|
<str> | Source string. Type: VARCHAR |
<pos> | Starting position, can be negative. Type: INT |
<len> | Optional parameter, length to extract. Type: INT |
Returns VARCHAR type, representing the extracted substring.
Special cases:
SELECT substring('abc1', 2);
+-----------------------------+ | substring('abc1', 2) | +-----------------------------+ | bc1 | +-----------------------------+
SELECT substring('abc1', -2);
+-----------------------------+ | substring('abc1', -2) | +-----------------------------+ | c1 | +-----------------------------+
SELECT substring('abc1', 0);
+----------------------+ | substring('abc1', 0) | +----------------------+ | | +----------------------+
SELECT substring('abc1', 5);
+-----------------------------+ | substring('abc1', 5) | +-----------------------------+ | | +-----------------------------+
SELECT substring('abc1def', 2, 2);
+-----------------------------+ | substring('abc1def', 2, 2) | +-----------------------------+ | bc | +-----------------------------+
SELECT substring('foobarbar' FROM 4 FOR 3);
+-------------------------------------+ | substring('foobarbar' FROM 4 FOR 3) | +-------------------------------------+ | bar | +-------------------------------------+
SELECT substring('foobarbar' FROM 4);
+-------------------------------+ | substring('foobarbar' FROM 4) | +-------------------------------+ | barbar | +-------------------------------+
SELECT MID(NULL, 2);
+--------------+ | MID(NULL, 2) | +--------------+ | NULL | +--------------+
SELECT SUBSTR('Hello World', 7, 5);
+------------------------------+ | SUBSTR('Hello World', 7, 5) | +------------------------------+ | World | +------------------------------+
SELECT SUBSTRING('ṭṛì ḍḍumai hello', 5, 6);
+--------------------------------------+ | SUBSTRING('ṭṛì ḍḍumai hello', 5, 6) | +--------------------------------------+ | ḍḍumai | +--------------------------------------+
SUBSTRING, SUBSTR, MID