Программирование >>  Программный интерфейс приложений 

1 ... 188 189 190 [ 191 ] 192 193 194 ... 264


or или i . Логическое ИЛИ; равен 1, если хотя бы один из операндов истинен (не ноль или null). В противном случае равен 0.

о or о iO

0 or 3 я 4 or 2 =>!

1 or null я

and или &&. Логическое И; равен 1, если оба операнда истинны (не ноль или null). В противном случае равен 0.

о and О <=i>0

0 and 3 =>0 4 and 2 =>1

1 and null оо

В MySQL логические операции, как и в языке С, можно задавать с помощью символов ! , I I и && . Необходимо помнить однако, что оператор и не выполняет объединение строк, как в некоторых других версиях SQL. Для объединения строк можно использовать только функцию concat{) .

Операторы преобразования

Оператор binary заставляет программу обрабатывать следующий операнд как двоичную строку, в результате чего сравнение с этой строкой выполняется с учетом регистра символов. Если следующий операнд является числом, то он преобразуется в строковую форму:

аЬс = АБС

аЬс = BINARY ABC

BINARY abc = ABC OO

2 < 12

2 < BINARY 12 OO

Оператор binary вызывает преобразование числа в строку, после чего выполняется лексикофафическое сравнение, поскольку оба операнда являются строками.

Оператор binary впервые появился в MySQL 3.23.0.

Операторы сравнения с образцом

MySQL включает SQL-оператор like для сравнения с образцом значений и SQL-оператор regexp для сравнения с образцом расширенных регулярных выражений. При сравнении с образцом SQL регистр символа не учитывается. Исключение составляют лишь случаи, когда задаваемая строка или образец сравнения представляют собой двоичные строки. При



сравнении с образцом расширенных регулярных выражений регистр символов всегда учитьшается.

Операция сравнения SQL считается успешной, если задаваемому образцу соответствует вся строка. Сравнение с образцом расширенных регулярных выражений считается успешно завершенным даже в том случае, если образец найден в любом месте строки.

str blKZ pat [ESCAPE с]; 5frN0T LIKE pat [ESCAPE c]. Оператор LIKE выполняет простое SQL-сравнение с образцом и равен 1, если строка образца pat совпадает со всем строковым выражением str. Если же строка не совпадает, этот оператор равен 0. Оператор NOT LIKE функционирует с точностью до наоборот. В этой связи следуюшие два выражения эквивалентны: str NOT LIKE pat [ESCAPE с] NOT (str LIKE pat [ESCAPE c])

Результатом этого оператора является значение NOLL, если хотя бы одна из строк имеет значение NULL.

В SQL-образцах два символа имеют специальное значение. Символ Соответствие

% Любая последовательность символов, кроме значения NOLL

(включая пустую строку)

Любой одинарный символ

Задаваемые для сравнения образцы могут содержать как один такой символ, как и оба сразу.

catnip LIKE cat%

dogwood LIKE %wood =Я

bird LIKE Ol

bird LIKE

dogwood LIKE %wo Ol

Учитывать ли регистр символов при сравнении с образцом с помошью опер iTopa LIKE, определяется сравниваемыми строками. Обычно в таких случаях регистр символов при сравнении не учитывается. Ситуация изменяется, если одна из строк является двоичной строкой, abc LIKE ABC BINARY abc LIKE ABC abc LIKE BINARY ABC =>0

Поскольку символу % можно поставить в соответствие любую последовательность символов, то ему же может соответствовать и полное их отсутствие.



like % 1

cat like cat% 1

В MySQL оператор like можно использовать с числовыми выражениями:

50 + 50 like 1% 1

200 like 2

Если в строке необходимо ввести символы % или отключив их специальное значение, достаточно впереди установить символ \ :

100% pure like 100% 1

100% pure like 100\%

100% pure LIKE 100\% pure *1

Чтобы использовать другой символ перехода (т.е. не \ ), достаточно определить его с помощью оператора escape:

100% pure like 100 % escape oo

100% pure like 100 % pure escape *1

str regexp pat, str NOT regexp pat. Оператор regexp выполняет сравнение с образцом расширенных регулярных выражений. Расширенные регулярные выражения подобны образцам, используемым UNIX-утилитами grep и sed. В табл. В.1 представлены последовательности образцов, которые можно применять в MySQL.

Таблица В.1. Последовательности расширенных регулярных выражений

Последова- Описание гельносгь

Соответствует началу строки

$ Соответствует концу строки

Соответствует любому одинарному символу, включая символ перехода на новую строку

[ ] Соответствует любому символу, установленному между скобками

[ ] Соответствует любому символу, не установленному между скобками

е* Соответствует нескольким или определенному количеству экземп-

ляров элемента образца е

е+ Соответствует одному или нескольким экземплярам элемента об-

разца в

е? Соответствует нескольким или определенному количеству экземп-

ляров элемента образца е



1 ... 188 189 190 [ 191 ] 192 193 194 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика