Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб-1-2-теория.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Функции сравнения строк

Обычно если любое выражение в сравнении строк чувствительно к регистру, то сравнение также чувствительно к регистру.

выражение LIKE шаблон [ESCAPE 'символ-отмены']

Проверка на соответствие шаблону, заданному простыми регулярными выражениями SQL. Возвращает 1 (TRUE) или 0 (FALSE). Если выражение или шаблон равны NULL, возвращает NULL.

В шаблонах LIKE можно использовать следующие два символа:

"%" – соответствие любому числу символов, включая нуль символов.

"_" – соответствие любому одному символу.

Примеры:

mysql> SELECT 'David!' LIKE 'David_';

-> 1

mysql> SELECT 'David!' LIKE '%D%v%';

-> 1

Если требуется исследовать строку на вхождения в неё шаблонных символов (% или _), то шаблонный символ следует предварить экранирующим символом (ESCAPE). Если экранирующий символ не указан явно, то по умолчанию им считается символ '\':

"\%" – соответствует одному символу '%'

"\_" – соответствует одному символу '_'

Примеры:

mysql> SELECT 'David!' LIKE 'David\_';

-> 0

mysql> SELECT 'David_' LIKE 'David\_';

-> 1

Для указания конкретного экранирующего символа используется выражение ESCAPE:

mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|';

-> 1

В следующих двух примерах показано, что сравнение строк производится без учета регистра, если ни один из операндов не является строкой с двоичными данными:

mysql> SELECT 'abc' LIKE 'ABC';

-> 1

mysql> SELECT 'abc' LIKE BINARY 'ABC';

-> 0

В функции LIKE допускаются числовые выражения.

mysql> SELECT 10 LIKE '1%';

-> 1

expr REGEXP pat; expr RLIKE pat

Выполняет сравнение строкового выражения expr с шаблоном pat. Шаблон может представлять собой расширенное регулярное выражение. Возвращает 1, если expr соответствует pat, в противном случае - 0.

Примеры:

mysql> SELECT 'Monty!' REGEXP 'm%y%%';

-> 0

mysql> SELECT 'Monty!' REGEXP '.*';

-> 1

mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';

-> 1

mysql> SELECT "a" REGEXP "A", "a" REGEXP BINARY "A";

-> 1 0

mysql> SELECT "a" REGEXP "^[a-d]";

-> 1

STRCMP(expr1,expr2)

Функция STRCMP() возвращает: 0, если строки идентичны, -1 - если первый аргумент меньше второго (в соответствии с имеющимся порядком сортировки), и 1 - в остальных случаях:

Примеры:

mysql> SELECT STRCMP('text', 'text2');

-> -1

mysql> SELECT STRCMP('text2', 'text');

-> 1

mysql> SELECT STRCMP('text', 'text');

-> 0

3.4. Дополнительные функции MySql

Рассмотрим битовые функции, информационные команды и некоторые вспомогательные команды MySql.

Битовые функции

MySQL использует для двоичных операций 64-битовые величины BIGINT, следовательно, для двоичных операторов максимальный диапазон составляет 64 бита.

Побитовое ИЛИ ( | )

mysql> SELECT 29 | 15;

-> 31

Побитовое И ( & )

mysql> SELECT 29 & 15;

-> 13

Побитовый XOR (побитовое сложение по модулю 2) ( ^ )

mysql> SELECT 1 ^ 1;

-> 0

mysql> SELECT 1 ^ 0;

-> 1

mysql> SELECT 11 ^ 3;

-> 8

Сдвиг числа влево ( << )

mysql> SELECT 1 << 2;

-> 4

Сдвиг числа вправо ( >> )

mysql> SELECT 4 >> 2;

-> 1

Инвертировать биты ( ~ )

mysql> SELECT 5 & ~1;

-> 4

BIT_COUNT(N)

Возвращает количество битов аргумента N, которые установлены в единицу

mysql> SELECT BIT_COUNT(29);

-> 4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]