# Функция SUBSTRING

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

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

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

## Синтаксис

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

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

Результат выполнения кода:

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`

Результат выполнения кода:

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

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

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

## Смотрите также

- функцию `MID`,
  которая также вырезает часть строки
- функцию `SUBSTRING_INDEX`,
  которая берет часть строки по указанному разделителю

↑