FIND

Поиск позиции подстроки в строке.

Сигнатура

Find(String, String[, Uint32?])->Uint32?
Find(String?, String[, Uint32?])->Uint32?
Find(Utf8, Utf8[, Uint32?])->Uint32?
Find(Utf8?, Utf8[, Uint32?])->Uint32?

Обязательные аргументы:

  • Исходная строка;
  • Искомая подстрока.

Опциональные аргументы:

  • Позиция — в байтах, с которой начинать поиск (целое число, или NULL по умолчанию, означающий «от начала исходной строки»).

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

Примеры

SELECT FIND("abcdefg_abcdefg", "abc"); -- 0
SELECT FIND("abcdefg_abcdefg", "abc", 1); -- 8
SELECT FIND("abcdefg_abcdefg", "abc", 9); -- null

RFIND

Обратный поиск позиции подстроки в строке, от конца к началу.

Сигнатура

RFind(String, String[, Uint32?])->Uint32?
RFind(String?, String[, Uint32?])->Uint32?
RFind(Utf8, Utf8[, Uint32?])->Uint32?
RFind(Utf8?, Utf8[, Uint32?])->Uint32?

Обязательные аргументы:

  • Исходная строка;
  • Искомая подстрока.

Опциональные аргументы:

  • Позиция — в байтах, с которой начинать поиск (целое число, или NULL по умолчанию, означающий «от конца исходной строки»).

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

Примеры

SELECT RFIND("abcdefg_abcdefg", "bcd"); -- 9
SELECT RFIND("abcdefg_abcdefg", "bcd", 8); -- 1
SELECT RFIND("abcdefg_abcdefg", "bcd", 0); -- null