|
Использование запросов
Запрос представляет из себя логическое выражение. Например, мы фильтруем таблицу пользователей по полю "ФИО пользователя". Если мы введем
то отфильтруются все пользователи, у которых в ФИО встречаются оба эти слова, либо полностью, либо частично. Такого же результата мы бы добились, написав эти слова через пробел:
Петр Иванов. Если же нам нужно отфильтровать всех пользователей, у которых в ФИО встречается Петр или
Иванов, необходимо ввести запрос:
В случае, если нам необходимо использовать отрицание, предусмотрен логический оператор "~". Например:
(Петр | Иванов) & ~Сидоров.
Данный запрос означает: вывести всех пользователей, у которых в ФИО встречаются сочетания букв 'Петр' или 'Иванов' и в то же время не встречаются 'Сидоров'. В последнем запросе были использованы круглые скобки. Это обусловлено тем, что оператор "|" имеет более низкий приоритет, чем оператор "&" (см. таблицу
Приоритеты логических операторов). В противном случае, если бы мы не указали круглых скобок, запрос
Петр | Иванов & ~Сидоров имел бы следующее значение: вывести всех пользователей, у которых в ФИО встречаются сочетания букв 'Иванов' и не встречаются 'Сидоров', либо всех пользователей, у которых в ФИО встречается 'Петр'. Вы можете использовать скобки и для построения более сложных запросов. Помимо вышеописанных операторов, возможно использование операторов для задания "масок". Например, вы не помните ФИО нужного вам человека, но точно знаете что фамилия начинается на "Пе" и заканчивается на "ова", при этом имя этого человека "Ирина"
либо "Ирэна". Для описания данных условий необходимо использовать следующий запрос:
Пе%ова & Ир_на. В данном запросе были использованы два оператора: "%", означающий "ноль, либо более любых символов" и оператор "_", означающий "один любой символ". В случае, если вам необходимо использовать поиск слов, содержащих зарезервированные символы, воспользуйтесь двойными либо одинарными кавычками, например:
"~NICK~" | '&Leon&'. Если вам необходимо найти фразу содержащую пробелы, обрамите ее двойными либо одинарными кавычками, например:
"Microsoft Internet Explorer" | 'Netscape Navigator'. Во всех выражениях запроса регистр символов значения не имеет.
Операторы, используемые в запросах
| Оператор | Описание |
| & |
Логический оператор "и" можно опускать: запрос Петр & Иванов полностью эквивалентен запросу
Петр Иванов. |
| | |
Логический оператор "или" позволяет искать записи, содержащие хотя бы один из операндов. |
| ~ |
Логический оператор "не" позволяет искать записи, не содержащие слово, указанное сразу после оператора, либо означает отрицание выражения, следующего сразу за этим оператором. |
| ( ) |
Круглые скобки задают порядок действия логических операторов. |
| % |
Оператор задания маски. Означает "0 или более любых символов". |
| _ |
Оператор задания маски. Означает "1 любой символ". |
Приоритеты логических операторов
| Оператор |
Приоритет |
| ~ |
1 |
| & |
2 |
| | |
3 |
|