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

MySQL при необходимости автоматически преобразует числа в строки и обратно.

mysql> SELECT l+’l’;

-> 2 mysql> SELECT CONCAT(2,’ test’);

-> ‘2 test1

Если требуется преобразовать число в строку явно, воспользуйтесь для этого функ­цией CAST () или CONCAT ( ):

mysql> SELECT 38.8, CAST(38.8 AS CHAR);

-> 38.8, ‘38.8’ mysql> SELECT 38.8, CONCAT(38.8);

-> 38.8, ‘38.8’

Функция CAST O предпочтительнее, однако она недоступна в версиях MySQL, пред­шествующих 4.0.2.

Если строковой функции в качестве аргумента передана бинарная строка, результи­рующая строка также будет бинарной. Это касается только сравнений.

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


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

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

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



mysql> SELECT ‘David!1LIKE ‘David_’;

-> 1 mysql> SELECT ‘David!’ LIKE ‘%D%v%’;

-> 1

Чтобы протестировать литеральные вхождения шаблонных символов, предваряй­те их символом отмены. Если конструкция ESCAPE не указана, предполагается ‘V.



>mysql> SELECT ‘David!1 LIKE ‘David_’;

-> 0 mysql> SELECT ‘DavidJ LIKE ‘DavidJ;

-> 1

Чтобы указать другой символ отмены, используйте конструкцию ESCAPE:

mysql> SELECT fDavid_’ LIKE ‘David|J ESCAPE ‘|f; -> 1

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

raysql> SELECT ‘abc’ LIKE ‘ABC;

-> 1 mysql> SELECT ‘abc’ LIKE BINARY ‘ABC;

-> 0

В MySQL LIKE допускает числовые выражения. (Это расширение LIKE из стан­дартного SQL).

mysql> SELECT 10 LIKE’1%’;

-> 1

Назаметку!

Поскольку MySQL применяет синтаксис отмены языка С в строках (например, ‘п’ представляет перевод строки), вы должны дублировать любые символы ‘ которые встречаются в строках LIKE. Например, чтобы искать ‘п следует указывать *пДля поиска ‘V указывайте ‘V (обратная косая черта отсекается первый раз анализатором выражений и второй – когда гото­вится шаблон, в результате чего остается только одна обратная косая черта).

  • выражение NOT LIKE шаблон [ESCAPE ‘символ-отмены1] Это то же самое, что NOT {выражение LIKE шаблон [ESCAPE ‘ символ-отмены’ ])
  • .

  • выражение NOT REGEXP шаблон выражение NOT RLIKE шаблон Это то же самое, что NOT {выражение REGEXP шаблон).


  • выражение REGEXP шаблон выражение RLIKE шаблон


Выполняет сравнение строкового выражения выражение с шаблоном шаблон. Шаб­лон может быть расширенным регулярным выражением. Синтаксис регулярных выражений рассматривается в приложении А. Возвращает 1, если выражение соот­ветствует шаблон, иначе возвращает 0. Если либо выражение, либо шаблон равны NULL, результатом также будет NULL. RLIKE – это синоним REGEXP, добавленный для достижения совместимости с mSQL. Следует отметить, что поскольку MySQL применяет синтаксис отмены языка С в строках (например, *п’ представляет пе­ревод строки), вы должны дублировать любые символы ‘ которые встречаются в строках REGEXP. Начиная с версии MySQL 3.23A, REGEXP не чувствителен к реги­стру обычных (не бинарных) строк.

mysql> SELECT ‘Monty!’ REGEXP ‘m%y%%!;

-> 0 mysql> SELECT ‘Monty!’ REGEXP ‘.*’;

-> 1 mysql> SELECT fnew*n*line’ REGEXP lnew*.*linel;

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: