Important
New database features are no longer connected to engine versions; features are now enabled independently during scheduled update windows, and “major” and “minor” releases no longer exist in Helios. Please visit the release notes to view the latest features available in your database clusters.
SUBSTRING
On this page
The SUBSTRING() function extracts a range of characters from a string.
Syntax
SUBSTRING(str, start, len)SUBSTR(str, start, len)SUBSTRING(str, start)SUBSTR(str, start)SUBSTRING(str FROM start FOR len)SUBSTR(str FROM start FOR len)SUBSTRING(str FROM start)SUBSTR(str FROM start)
Arguments
-
str: Any string or binary object -
start: The one-indexed position to start at.If negative, counts from the end. -
len: Length is the number of characters to extract.Forms without len, extract characters until the end of the string.
Return Type
String
Remarks
-
In
SUBSTRorSUBSTRING, the starting index point of a string is1(0is an alias for1).
Examples
In the following example, the starting index 3 represents the third character in the string, because the index starts from 1.
SELECT SUBSTRING('1234567890', 3, 3);
+-------------------------------+
| SUBSTRING('1234567890', 3, 3) |
+-------------------------------+
| 345 |
+-------------------------------+In the following example, the substring is returned from the end, because the starting index is a negative number.
SELECT SUBSTRING('1234567890', -3, 3);
+--------------------------------+
| SUBSTRING('1234567890', -3, 3) |
+--------------------------------+
| 890 |
+--------------------------------+The following examples demonstrate how substring works using different lengths and starting positions.
CREATE TABLE sub_tab(a INT, b INT, c INT, d INT);INSERT INTO sub_tab VALUES(1234,1234,1234,1234),(1,2,4, NULL);
SELECT substr(a,0,1) FROM sub_tab;
+---------------+
| substr(a,0,1) |
+---------------+
| 1 |
| 1 |
+---------------+SELECT substr(a,1,1) FROM sub_tab;
+---------------+
| substr(a,1,1) |
+---------------+
| 1 |
| 1 |
+---------------+SELECT substr(a,1,2) FROM sub_tab;
+---------------+
| substr(a,1,2) |
+---------------+
| 1 |
| 12 |
+---------------+SELECT substr(a,0,2) FROM sub_tab;
+---------------+
| substr(a,0,2) |
+---------------+
| 12 |
| 1 |
+---------------+Warning
Implicit Collation
When character_ is set to utf8, string literals with characters using 4-byte encoding are implicitly assigned binary collation and processed as a sequence of bytes rather than characters.utf8mb4 character set.
For more information, refer to Implicit Collation in Special Cases.
Related Topics
Last modified: