Значения фильтра этого типа обрабатываются по следующим правилам:
| Операция | Значение | Описание |
|---|
| пустая строка | Фильтр по полю применяться не будет. Будут выбраны все значения. |
| false
| Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL.
|
| "><" или "!><" | должно быть массивом с двумя элементами | Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
|
| "=", "%", "?" или не задана | будет приведено в типу doubleval
| Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство.
|
| ">", "<", ">=", "<=" | будет приведено в типу doubleval | "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия. |
Примечание
Если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В случае отрицания условия будут объединяться по "И".
Примеры использования
$arFilter = (
...
"ID" => false, //Не вернет ничего т.к. нет пустых ID
"!ID" => "", //вернет все т.к. фильтр не будет применен
"ID" => 0, //ID будет сравниваться с "0" (нулем)
"> array(1 ,100), //Все ID с 0 по 100 включительно
">ID" => "45", //Все ID больше 45-ти
"!%ID" => 33, //Все ID НЕ РАВНЫЕ 33
...
);
?>
Строка
Значения фильтра этого типа обрабатываются по следующим правилам:
| Операция |
Значение |
Описание |
|
пустая строка |
Фильтр по полю применяться не будет. Будут выбраны все значения. |
| "?" |
не пустая строка |
Значением фильтра должна быть строка которая может содержать сложную
логику. |
| "%", "!%" |
не пустая строка |
Будет выполнен регистронезависимый поиск подстроки. |
| "><" или "!><" |
должно быть массивом с двумя элементами |
Будет выполнена проверка на попадание в диапазон заданный элементами массива
значения фильтра. Включительно. Если перед полем этого указано отрицание (символ
"!"), то будут выбраны значения не попадающие в диапазон.
|
|
false |
Если перед полем этого фильтра указано отрицание (символ "!"), то будут
выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL
или те у которых длина равна нулю. |
| "=" или не задана |
будет приведено к верхнему регистру
|
Проверка на точное совпадение значения. Если указано отрицание, то проверка
будет выполнена на неравенство. Проверка регистронезависимая.
|
| ">", "<", ">=", "<=" |
будет приведено к верхнему регистру |
"Больше", "меньше", "больше или равно" и "меньше или равно". Можно
использовать "!" для отрицания условия. Не зависит от регистра.
|
Примечание
Если значение фильтра массив, то для каждого элемента будут
формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В
случае отрицания условия будут объединяться по "И".
Примеры использования
$arFilter = (
...
"NAME" => false, //Не вернет ничего т.к. нет пустых NAME
"!NAME" => "", //вернет все т.к. фильтр не будет применен
"%NAME" => "отр", //вернет все NAME содержащую подстроку "отр" не зависимо от регистра
"?NAME" => "(мама || мачеха) && (папа || отчим)", //Все имют двух родителей
">NAME" => "э", //Все начинающиеся на Э, Ю, Я.
...
);
?>
Маска
Значения фильтра этого типа обрабатываются по следующим правилам:
| Операция |
Значение |
Описание |
|
пустая строка |
Фильтр по полю применяться не будет. Будут выбраны все значения. |
| "?" |
не пустая строка |
Значением фильтра должна быть строка которая может содержать сложную
логику. |
| "%", "!%" |
не пустая строка |
Будет выполнен регистронезависимый поиск подстроки. |
| "><" или "!><" |
должно быть массивом с двумя элементами |
Будет выполнена проверка на попадание в диапазон заданный элементами массива
значения фильтра. Включительно. Если перед полем этого указано отрицание (символ
"!"), то будут выбраны значения не попадающие в диапазон.
|
|
false |
Если перед полем этого фильтра указано отрицание (символ "!"), то будут
выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL
или те у которых длина равна нулю. |
"="
|
будет приведено к верхнему регистру
|
Проверка на точное совпадение значения. Если указано отрицание, то проверка
будет выполнена на неравенство. Проверка регистронезависимая.
|
| ">", "<", ">=", "<=" |
будет приведено к верхнему регистру |
"Больше", "меньше", "больше или равно" и "меньше или равно". Можно
использовать "!" для отрицания условия. Не зависит от регистра.
|
| не указана |
будет приведено к верхнему регистру |
Значение фильтра будет служить маской для отбора значений. "%" - любое
количество любых символов, "_" - один любой
символ. |
Примечание
Если значение фильтра массив, то для каждого элемента будут
формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В
случае отрицания условия будут объединяться по "И".
Примеры использования
$arFilter = (
...
"NAME" => false, //Не вернет ничего т.к. нет пустых NAME
"NAME" => "", //вернет все т.к. фильтр не будет применен
"NAME" => "А%", //вернет все NAME начинающиеся на "A"
"?NAME" => "(мама || мачеха) && (папа || отчим)", //Все имют двух родителей
">NAME" => "э", //Все начинающиеся на Э, Ю, Я.
...
);
?>
Дата
Значения фильтра этого типа обрабатываются по следующим правилам:
| Операция |
Значение |
Описание |
|
пустая строка |
Фильтр по полю применяться не будет. Будут выбраны все значения. |
|
false
|
Если перед полем этого фильтра указано отрицание (символ "!"), то будут
выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL.
|
| "><" или "!><" |
должно быть массивом с двумя элементами |
Будет выполнена проверка на попадание в диапазон заданный элементами массива
значения фильтра. Включительно. Если перед полем этого указано отрицание (символ
"!"), то будут выбраны значения не попадающие в диапазон.
|
| "=", "%", "?" или не задана |
будет приведено к типу времени БД с помощью функции CharToDateFunction
|
Проверка на точное совпадение значения. Если указано отрицание, то проверка
будет выполнена на неравенство.
|
| ">", "<", ">=", "<=" |
будет приведено к типу времени БД с помощью функции CharToDateFunction |
"Больше", "меньше", "больше или равно" и "меньше или равно". Можно
использовать "!" для отрицания условия. |
Примечание
Если значение фильтра массив, то для каждого элемента будут
формироваться соответствующие условия, а затем они будут объеденены по "ИЛИ". В
случае отрицания условия будут объединяться по "И".
Примеры использования
//Все активные элементы это те у которых ACTIVE_FROM не задано или меньше чем сейчас
//при не заданной ACTIVE_TO или ACTIVE_TO больше чем сейчас
$arFilter = (
"<=DATE_ACTIVE_FROM" => array(false, ConvertTimeStamp(false, "FULL")),
">=DATE_ACTIVE_TO" => array(false, ConvertTimeStamp(false, "FULL")),
);
?>