Предикат SQL LIKE для поиска строки с заданными символами, страница 2
Назад<<< | Содержание | Вперёд>>> |
Применение предиката LIKE с составными условиями
Итак, мы уже разобрали задачи, в которых выборка извлекается с помощью простого условия, то есть такого, в котором предикат LIKE задействован один раз и задаёт условие выборки один раз. Однако встречаются задачи, в которых с помощью простого условия получить искомые результаты не удаётся. Например, когда искомая строка содержит заданное слово и при этом содержит заданное число пробелов. В таких случаях применяются составные условия и для этого предикат LIKE задействован более одного раза.
Рассмотрим наиболее частые составные условия, для задания которых предикат LIKE задействован два раза. Вообще, в запросах с составным условием имя столбца, из которого извлекаются интересующие нас данные, должно повторяться столько раз, сколько раз задействован предикат LIKE. Поэтому неправильным будет следующий синтаксис:
Неправильным будет и такой синтаксис:
Правильным будет следующий синтаксис:
Перейдём к примерам работы с той же базой данных "Театр".
Пример 6. Вывести спектакли, названия которых заканчиваются на 'a', но не на 'ra'.
Пишем запрос в котором предикат LIKE используется первый раз с выражением '%a', а второй раз с отрицанием (NOT) и выражением '%ra':
В результате выполнения запроса будет выведено следующее:
Matilda |
Таким образом, запрос, похожий на запрос из примера 3, но дополненный условием отрицания выражения '%ra', исключает из выборки другой результат, также заканчивающийся на 'a', но при этом заканчивающйся на 'ra' - Antony and Cleopatra
Пример 7. Вывести спектакли, в названии которых содержится слово "War", но только в единственном числе (не "Wars").
Пишем запрос в котором перевый рах с предикатом LIKE используем выражение '%War%', а второй раз с отрицанием предиката LIKE - выражение '%Wars%':
В результате выполнения запроса будет выведено следующее название:
The War That Never Ends |
Название The Wars of the Roses, которое выводится в похожем примере 4, в данном случае исключено, так как содержит слово War во множественном числе (Wars).
Пример 8. Вывести спектакли, названия которых начинаются на 'M' и содержат тире (" - ").
Пишем запрос в котором с предикатом LIKE используем выражение '% % % % % %':
В результате выполнения запроса будет выведено следующее название:
Morte d Arthur - Sir Thomas Malory |
Назад<<< | Содержание | Вперёд>>> |
Поделиться с друзьями