Перейти к основному содержимому
Версия: 2.0.x

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("selenacluster", 1);
+-------------------------------------+
| substring('selenacluster', 1) |
+-------------------------------------+
| selenacluster |
+-------------------------------------+

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

-- Позиция отрицательная, отсчёт ведётся с конца строки.
MySQL > select substring("selena", -5, 5);
+-------------------------------+
| substring('selena', -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