Предикат LIKE стр. 1 |
||||||||||||||||||||||||||||||||||||||||||||||||||
Синтаксис:
Предикат LIKE сравнивает строку, указанную в первом выражении, для вычисления значения строки, называемого проверяемым значением, с образцом, который определен во втором выражении для вычисления значения строки. В образце разрешается использовать два трафаретных символа:
Если проверяемое значение соответствует образцу с учетом трафаретных символов, то значение предиката равно TRUE. Ниже приводится несколько примеров написания образцов.
Пример 5.4.1 Найти все корабли, имена классов которых заканчиваются на букву ‘о’ Результатом выполнения запроса будет следующая таблица:
Пример 5.4.2 Найти все корабли, имена классов которых заканчиваются на букву ‘о’, но не на ‘go’
Если искомая строка содержит трафаретный символ, то следует задать управляющий символ в предложении ESCAPE. Этот управляющий символ должен использоваться в образце перед трафаретным символом, сообщая о том, что последний следует трактовать как обычный символ. Например, если в некотором поле следует отыскать все значения, содержащие символ «_», то шаблон ‘%_%’ приведет к тому, что будут возвращены все записи из таблицы. В данном случае шаблон следует записать следующим образом:
Для проверки значения на соответствие строке «25%» можно воспользоваться таким предикатом:
Следует заметить, что MySQL и PostgreSQL допускают помимо ESCAPE-символа экранирование трафаретных символов с помощью обратного слеша (\) в стиле некоторых языков программирования общего назначения. Для этих СУБД последние два шаблона можно записать так:
Несмотря на краткость такой записи, она несет в собе потенциальную проблему при переходе на другую платформу. Истинностное значение предиката LIKE присваивается в соответствии со следующими правилами:
Рекомендуемые упражнения: 44, 45, 74
|