Проверка на соответствие шаблону
Для выборки строк, в которых содержимое некоторого текстового столбца совпадает с заданным текстом, можно использовать простое сравнение.
Однако очень легко можно забыть, какое именно название носит интересующая нас компания: «Грант», «Гранит» или «Гранат». Проверка на соответствие шаблону позволяет выбрать из базы данных строки на основе частичного соответствия текстовых строк.
Предложение LIKE определяет шаблоны сравнения строковых значений. Если необходимо, чтобы сравниваемое значение (значение столбца или результат вычисления строкового выражения) удовлетворяло шаблону, в условии поиска необходимо указать
<значение> [NOT] LIKE <шаблон> [ESCAPE <подшаблон>]
Шаблон представляет собой строку, в которую может входить один или более подстановочных знаков, которые интерпретируются особым образом:
– символ «%» (или «*») означает, что на его месте может быть строка любой длины,
– символ «_» (или «?») используется для указания любого единичного символа.
Подстановочные знаки можно помещать в любое место строки шаблона, и в одной строке может содержаться несколько подстановочных знаков.
При проверке строк на соответствие шаблону может оказаться, что подстановочные знаки входят в строку символов в качестве литералов (например, знак %). Для проверки наличия в строке литералов, использующихся в качестве подстановочных знаков, применяются символы пропуска.
Например, нельзя проверить, содержится ли знак процента в строке, просто включив его в шаблон, поскольку СУБД считает этот знак подстановочным. Но когда в шаблоне встречается символ пропуска, то символ, следующий за ним непосредственно, считается не подстановочным знаком, а литералом. Другими словами, происходит пропуск символа.
Символ пропуска определяется с помощью ключевого слова ESCAPE. Ниже приведен пример использования знака доллара ($) в качестве символа пропуска.
Найти товары, коды которых начинаются с букв A%BC
SELECT ID_ORDER, ID_PRD
FROM ZAKAZY
WHERE ID_PRD LIKE `A$%BC%` ESCAPE $
Первый символ % в шаблоне, следующий за символом пропуска $, считается литералом, второй – подстановочным знаком.
Дата добавления: 2015-02-03; просмотров: 1498;