П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4097 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6758 раз(а).

Учебник HTML.
Просмотров 3719 раз(а).

Руководство по PHP5.
Просмотров 5992 раз(а).

Хостинг через призму DNS.
Просмотров 4814 раз(а).

Подборка текстов стандартных документов.
Просмотров 56246 раз(а).

Учебник PHP - Самоучитель
Просмотров 3706 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8346 раз(а).

Внешние атаки...
Просмотров 4566 раз(а).

Учебник PHP.
Просмотров 3175 раз(а).

SSI в примерах.
Просмотров 176 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 6. Справочник по языку MySQL
Пред.     След.

6.3. Функции, используемые в операторах SELECT и WHERE
6.3.2. Строковые функции

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

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

  • 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 Приложение G, Регулярные выражения в 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».


Назад Начало Главы Начало Раздела Начало Подраздела Вперед

Пред. Глава След. Глава
Глава 5. Оптимизация в MySQL Начало Книги Глава 7. Типы таблиц MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru