Тема 4.1 Стандартные системы доступа к базам данных. Тема 4.2 Клиенты удаленного доступа и построение запросов к СУБД
Тема 3.10 MySQL. Оптимизация данных в MySQL.Безопасность в MySQL.
Expr RLIKE pat
Expr REGEXP pat
Функции сравнения строк
Обычно если любое выражение в сравнении строк чувствительно к регистру, то сравнение также чувствительно к регистру.
выражение LIKE шаблон [ESCAPE 'символ-отмены']
Проверка на соответствие шаблону, заданному простыми регулярными выражениями SQL. Возвращает 1 (TRUE) или 0 (FALSE). Если выражение или шаблон равны NULL, возвращает NULL.
В шаблонах LIKE можно использовать следующие два символа:
"%" – соответствие любому числу символов, включая нуль символов.
"_" – соответствие любому одному символу.
mysql> SELECT 'David!' LIKE 'David_'; -> 1 mysql> SELECT 'David!' LIKE '%D%v%'; -> 1
Если требуется исследовать литералы при помощи шаблонного символа, следует предварить шаблонный символ экранирующим символом. Если экранирующий символ конкретно не указывается, то подразумевается применение символа '\':
"\%" – соответствует одному символу '%'
"\_" – соответствует одному символу '_'
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 с шаблоном pat. Шаблон может представлять собой расширенное регулярное выражение. Возвращает 1, если expr соответствует pat, в противном случае - 0.
Функция STRCMP() возвращает: 0, если строки идентичны, -1 - если первый аргумент меньше второго (в соответствии с имеющимся порядком сортировки), и 1 - в остальных случаях: