Мы уже говорили об операторе SQL LIKE, который используется для сравнения значения для аналогичных значений с использованием операторов подстановки.
SQL поддерживает два подстановочных оператора в сочетании с оператором LIKE, которые подробно описаны в следующей таблице.
№ | Подстановочные операторы & Описание |
---|---|
1 | Знак процента (%) Соответствует одному или более символов. Примечание — MS Access использует символ звездочки (*) символ подстановки вместо знака процента (%) подстановочный знак. |
2 | Подчеркивание (_) Соответствует одному символу. Примечание — MS Access использует знак вопроса вместо подчеркивания (_) , чтобы соответствовать любому символу (?). |
Знак процента представляет ноль, один или несколько символов. Подчеркивание представляет собой одно целое число или символ. Эти символы могут быть использованы в комбинации.
Основной синтаксис «%» и «_» оператора заключается в следующем.
SELECT FROM table_name WHERE column LIKE 'XXXX%' or SELECT FROM table_name WHERE column LIKE '%XXXX%' or SELECT FROM table_name WHERE column LIKE 'XXXX_' or SELECT FROM table_name WHERE column LIKE '_XXXX' or SELECT FROM table_name WHERE column LIKE '_XXXX_'
Вы можете объединить N число условий с помощью операторов AND или OR. Здесь XXXX может быть любым числовым или строковым значением.
В следующей таблице имеется ряд примеров, показывающих, где часть, имеющую различные положения с операторами «_» и «%».
№ | Заявление и описание |
---|---|
1 | WHERE SALARY LIKE ‘200%’ Находит все значения, которые начинаются с 200. |
2 | WHERE SALARY LIKE ‘%200%’ Находит все значения, которые имеют 200 в любом положении. |
3 | WHERE SALARY LIKE ‘_00%’ Находит все значения, которые имеют 00 во второй и третьей позиции. |
4 | WHERE SALARY LIKE ‘_00%’ Находит все значения, которые начинаются с 2, и по меньшей мере, 3-х символов в длину. |
5 | WHERE SALARY LIKE ‘2_%_%’ Находит любые значения, которые начинаются на 2. |
6 | WHERE SALARY LIKE ‘%2’ Находит любые значения, которые имеют 2 во втором положении и в конце с 3. |
7 | WHERE SALARY LIKE ‘_2%3’ Находит любые значения в пять-значного числа, которые начинаются с 2 и заканчивается 3. |
Возьмем реальный пример, рассмотрим таблицу клиентов, имеющих следующие записи:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 45000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
Следующий блок кода является примером, который отобразит все записи из таблицы CUSTOMERS, где SALARY начинается с 55.
SQL> SELECT * FROM CUSTOMERS WHERE SALARY LIKE '55%';
Это даст следующий результат:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | +----+----------+-----+-----------+----------+