Оператор LIKE
Оператор LIKE создает свойство, реализующее сравнение строки с шаблоном. Для полнотекстового поиска используется отдельный оператор MATCH.
Синтаксис
searchExpr LIKE compareExpr
Описание
Оператор LIKE создает свойство, которое возвращает TRUE, если указанная строка соответствует указанному шаблону. Шаблон может включать следующие специальные символы:
%(процент) - заменяет любое количество символов, включая отсутствие символов. Этот символ применяется, когда точное содержание или количество символов в части строки неизвестно._(подчеркивание) - заменяет ровно один символ. Применяется, когда необходимо точно определить местоположение одного символа, но сам символ может быть любым.
Для включения символов % или _ в шаблон как обычных символов, их необходимо экранировать с помощью символа обратной косой черты \. Не забывайте, что при задании шаблона с помощью строкового литерала для представления самой обратной косой черты её нужно удвоить: \\.
Регистрозависимость LIKE определяется классом searchExpr. Для регистронезависимых строковых классов (ISTRING, BPISTRING, TEXT, RICHTEXT, HTMLTEXT) оператор выполняет регистронезависимое сравнение.
Параметры
-
searchExprВыражение, значение которого определяет сравниваемую строку.
Значение выражения должно принадлежать одному из строковых классов.
-
compareExprВыражение, значение которого определяет шаблон.
Значение выражения должно принадлежать одному из строковых классов.
Примеры
isReportDocument(Document doc) = name(doc) LIKE '%отчет%'; // проверяет, что в имени встречается слово 'отчет'
isPhoneNumber(STRING str) = str LIKE '(___) ___-____'; // проверяет телефонный номер на соответствие формату
startsWith(STRING str, STRING prefix) = str LIKE prefix + '%'; // проверяет начало строки
contains(STRING content, STRING str) = content LIKE '%' + str + '%'; // проверяет строку на вхождение
containsNew(STRING content, STRING str) = content LIKE '%${str}%'; // тоже самое, но со строковой интерполяцией
escapingExample(STRING str) = str LIKE '__\\%'; // Пример экранирования. Проверяет на двузначное количество процентов.