Обычно если при выполнении сравнения строк одно из выражений является зависимым от регистра, то сравнение выполняется также с учетом регистра.
-
expr LIKE pat [ESCAPE 'escape-char']Функция производит сравнение с шаблоном, используя операции сравнения простых регулярных выражений в SQL. Возвращает
1(ИСТИНА) или0(ЛОЖЬ). ВыражениеLIKEпредусматривает использование следующих двух шаблонных символов вpat:Символ Описание %Соответствует любому количеству символов, даже нулевых _Соответствует ровно одному символу mysql> SELECT 'David!' LIKE 'David_'; -> 1 mysql> SELECT 'David!' LIKE '%D%v%'; -> 1 mysql> select TRUNCATE(-1.999,1); -> -1.9Начиная с MySQL 3.23.51 все числа округляются к нулю.
Если
Dявляется негативным, то тогда вся часть числа округляется к нулю.mysql> select truncate(122,-2); -> 100Если требуется исследовать литералы при помощи шаблонного символа, следует предварить шаблонный символ экранирующим символом. Если экранирующий символ конкретно не указывается, то подразумевается применение символа '
\':Строка Описание \%Соответствует одному символу ' %'\_Соответствует одному символу ' _'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 по сравнению с ANSI SQL LIKE.)mysql> SELECT 10 LIKE '1%'; -> 1Примечание: поскольку в MySQL применяются правила экранирования в строках, применяемые в языке C (например, '
\n'), необходимо дублировать все символы '\', используемые в строках функцииLIKE. Например, для поиска сочетания символов '\n' его необходимо указать как '\\n'. Чтобы выполнить поиск символа '\', он должен быть указан как '\\\\' (обратные слеши удаляются дважды: сначала синтаксическим анализатором, а потом - при выполнении сравнения с шаблоном, таким образом остается только один обратный слеш, который и будет обрабатываться). -
expr NOT LIKE pat [ESCAPE 'escape-char']То же, что и
NOT (expr LIKE pat [ESCAPE 'escape-char']). -
expr SOUNDS LIKE exprТоже самое что и
SOUNDEX(expr)=SOUNDEX(expr)(доступно в версии 4.1 или новее). -
expr REGEXP pat,expr RLIKE patВыполняет сравнение строкового выражения
exprс шаблономpat. Шаблон может представлять собой расширенное регулярное выражение. See Приложение F, Регулярные выражения в MySQL. Возвращает1, еслиexprсоответствуетpat, в противном случае -0. ФункцияRLIKEявляется синонимом дляREGEXP, она предусмотрена для совместимости с mSQL. Примечание: поскольку в MySQL используются правила экранирования в строках, применяемые в языке C (например, '\n'), необходимо дублировать все символы '\', используемые в строках функцииREGEXP. Что касается версии MySQL 3.23.4, функцияREGEXPявляется независимой от регистра для нормальных строк (т.е. строк не с двоичными данными):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В
REGEXPиRLIKEиспользуется текущий набор символов (ISO-8859-1 Latin1 по умолчанию), -
expr NOT REGEXP pat,expr NOT RLIKE patТо же, что и
NOT (expr REGEXP pat). -
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 -
MATCH (col1,col2,...) AGAINST (expr),MATCH (col1,col2,...) AGAINST (expr IN BOOLEAN MODE)Функция
MATCH ... AGAINST()используется для полнотекстового поиска и возвращает величину релевантности - степень сходства между текстом в столбцах(col1,col2,...)и запросомexpr. Величина релевантности представляет собой положительное число с плавающей точкой. Нулевая релевантность означает отсутствие сходства. ФункцияMATCH ... AGAINST()работает в версиях MySQL 3.23.23 или более поздних. РасширениеIN BOOLEAN MODEбыло добавлено в версии 4.0.1. Более подробное описание и примеры использования приведены в разделе Раздел 6.8, «Полнотекстовый поиск в MySQL».