Перейти к основному содержимому

substring, substr

Описание

Извлекает символы, начиная с указанной позиции, и возвращает подстроку указанной длины.

Синтаксис

VARCHAR substr(VARCHAR str, pos[, len])

Параметры

  • str: обязательный, строка для извлечения символов. Должно быть значение типа VARCHAR.
  • pos: обязательный, целое число, указывающее начальную позицию. Обратите внимание, что первый символ в строке имеет номер 1, а не 0.
    • Если pos равно 0, возвращается пустая строка.
    • pos может быть отрицательным целым числом. В этом случае функция извлекает символы, начиная с конца строки. См. Пример 2.
    • Если позиция, указанная в pos, выходит за пределы строки, возвращается пустая строка. См. Пример 3.
  • len: необязательный, положительное целое число, указывающее количество символов для извлечения.
    • Если len указан, функция извлекает len символов, начиная с позиции, указанной в pos.
    • Если len не указан, функция извлекает все символы, начиная с позиции pos. См. Пример 1.
    • Если len превышает фактическую длину соответствующих символов, возвращаются все соответствующие символы. См. Пример 4.

Возвращаемое значение

Возвращает значение типа VARCHAR.

Примеры

-- Извлечь все символы, начиная с первого символа "s".
MySQL > select substring("starrockscluster", 1);
+-------------------------------------+
| substring('starrockscluster', 1) |
+-------------------------------------+
| starrocks |
+-------------------------------------+

-- Позиция отрицательная, и отсчет ведется с конца строки.
MySQL > select substring("starrocks", -5, 5);
+-------------------------------+
| substring('starrocks', -5, 5) |
+-------------------------------+
| rocks |
+-------------------------------+

-- Позиция превышает длину строки, и возвращается пустая строка.
MySQL > select substring("apple", 8, 2);
+--------------------------------+
| substring('apple', 8, 2) |
+--------------------------------+
| |
+--------------------------------+

-- Есть 5 соответствующих символов. Длина 9 превышает длину соответствующих символов, и возвращаются все соответствующие символы.
MySQL > select substring("apple", 1, 9);
+--------------------------+
| substring('apple', 1, 9) |
+--------------------------+
| apple |
+--------------------------+

keyword

substring,string,sub