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