Функция SUBSTRING вырезает и возвращает заданное количество символов из строки.

Первым параметром функция принимает поле или строку, вторым параметром - с какой позиции начинать вырезания (нумерация символов начинается с 1), третьем параметром - сколько символов брать.

Третий параметр не является обязательным. Если он не указан, текст будет вырезан с указанной позиции и до конца строки.

См. также функцию MID, которая также вырезает часть строки.

См. также функцию SUBSTRING_INDEX, которая берет часть строки по указанному разделителю.

Синтаксис

Первый синтаксис:

SELECT SUBSTRING(поле, откуда_отрезать, сколько_символов_взять) FROM имя_таблицы WHERE условие

Альтернативный синтаксис:

SELECT SUBSTRING(поле FROM откуда_отрезать FOR сколько_символов_взять) FROM имя_таблицы WHERE условие

Третий параметр не обязателен, в этом случае текст будет вырезан с указанной позиции и до конца строки:

SELECT SUBSTRING(поле, откуда_отрезать) FROM имя_таблицы WHERE условие
SELECT SUBSTRING(поле FROM откуда_отрезать) FROM имя_таблицы WHERE условие

Примеры

Все примеры будут по этой таблице texts, если не сказано иное:

id
айди
text
текст
1 Это первый длинный текст!
2 Это второй длинный текст!

Пример

В данном примере из строки вырезаются и возвращаются 6 символов, начиная с 5-го:

SELECT id, SUBSTRING(text, 5, 6) as text FROM texts

SQL запрос выберет следующие строки:

id
айди
text
текст
1 первый
2 второй

Запрос можно переписать в следующем виде:

SELECT id, SUBSTRING(text FROM 5 FOR 6) as text FROM texts

Пример

В данном примере возвращается вся строка до конца, начиная с пятого символа:

SELECT id, SUBSTRING(text, 5) as text FROM texts

SQL запрос выберет следующие строки:

id
айди
text
текст
1 первый длинный текст!
2 второй длинный текст!

Запрос можно переписать в следующем виде:

SELECT id, SUBSTRING(text FROM 5) as text FROM texts