Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Gt; FROM string_tbl

Оператор except | SELECT emp_id | Правила операций с множествами | Старшинство операций с множествами | Gt; SELECT cust_id _> FROM account | Упражнения | Строковые данные | Создание строк | Специальные символы | Работа со строками |


_> ORDER BY vchar_fld;

 

+___________+ | vchar_fld | +___________+

| 12345 |
| abcd |
| QRSTUV |
| qrstuv |
| xyz |

+___________+

5 rows in set (0.00 sec)

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

 

mysql> SELECT STRCMP('12345','12345') 12345_12345,

_> STRCMP('abcd','xyz') abcd_xyz,

_> STRCMP('abcd','QRSTUV') abcd_QRSTUV,

_> STRCMP('qrstuv','QRSTUV') qrstuv_QRSTUV,

_> STRCMP('12345','xyz') 12345_xyz,

_> STRCMP('xyz','qrstuv') xyz_qrstuv;

 

+_____________+__________+_____________+_______________+___________+____________+ | 12345_12345 | abcd_xyz | abcd_QRSTUV | qrstuv_QRSTUV | 12345_xyz | xyz_qrstuv | +_____________+__________+_____________+_______________+___________+____________+ | 0 | _1 | _1 | 0 | _1 | 1 | +_____________+__________+_____________+_______________+___________+____________+ 1 row in set (0.00 sec)

 

В результате первого сравнения получаем вполне ожидаемое значение 0, поскольку строка сравнивалась сама с собой. Четвертое сравнение также дает 0, что немного неожиданно, поскольку строки состоят из одних и тех же букв, но в одной строке все буквы в верхнем регистре, а в другой – в нижнем. Причиной такого результата является то, что функция strcmp() MySQL не чувствительна к регистру, о чем надо пом_ нить при ее использовании. Остальные четыре сравнения дают или _1, или 1 в зависимости от порядка расположения строк в порядке сорти_ ровки. Например, strcmp('abcd','xyz') дает _1, поскольку строка 'abcd' идет перед строкой 'xyz'.

 

Наряду с функцией strcmp() MySQL позволяет использовать в блоке select операторы like и regexp для сравнения строк. Результатом таких сравнений будет 1 (для true) и 0 (для false). Следовательно, эти опера_ торы позволяют создавать выражения, возвращающие число, подобно функциям, описанным в этом разделе. Вот пример использования опе_ ратора like:


 

Строковые данные  
   
mysql> SELECT name, name LIKE '%ns' ends_in_ns  

_> FROM department;

 

+________________+____________+ | name | ends_in_ns | +________________+____________+

 

| Operations |   |
| Loans |   |
| Administration |   |
         

 

+________________+____________+ 3 rows in set (0.25 sec)

 

В этом примере выбираются все названия отделов. Также есть выра_ жение, возвращающее 1, если название отдела заканчивается на «ns» или 0 в противном случае. Для поиска совпадений по более сложному шаблону можно использовать оператор regexp, как показано ниже:

 

mysql> SELECT cust_id, cust_type_cd, fed_id,

 

_> fed_id REGEXP '.{3}_.{2}_.{4}' is_ss_no_format _> FROM customer;

 

+_________+______________+_____________+_________________+ | cust_id | cust_type_cd | fed_id | is_ss_no_format | +_________+______________+_____________+_________________+

|   | I | 111_11_1111 |   |
|   | I | 222_22_2222 |   |
|   | I | 333_33_3333 |   |
|   | I | 444_44_4444 |   |
|   | I | 555_55_5555 |   |
|   | I | 666_66_6666 |   |
|   | I | 777_77_7777 |   |
|   | I | 888_88_8888 |   |
|   | I | 999_99_9999 |   |
|   | B | 04_1111111 |   |
|   | B | 04_2222222 |   |
|   | B | 04_3333333 |   |
|   | B | 04_4444444 |   |

 

+_________+______________+_____________+_________________+ 13 rows in set (0.00 sec)

 

Четвертый столбец этого запроса возвращает 1, если значение в столб_ це fed_id соответствует формату номера социальной страховки.

Пользователи SQL Server и Oracle Database могут получить ана_ логичные результаты с помощью выражений case, описанных в главе 11.

 


Дата добавления: 2015-08-17; просмотров: 61 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Gt; LENGTH(vchar_fld) varchar_length, _> LENGTH(text_fld) text_length| Строковые функции, возвращающие строки

mybiblioteka.su - 2015-2024 год. (0.007 сек.)