Изучаем sql



Pdf көрінісі
бет115/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   111   112   113   114   115   116   117   118   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

DELETE FROM string_tbl;
Query OK, 1 row affected (0.00 sec)
mysql> 
INSERT INTO string_tbl(vchar_fld) VALUES ('abcd');
Query OK, 1 row affected (0.03 sec)
mysql> 
INSERT INTO string_tbl(vchar_fld) VALUES ('xyz');
Query OK, 1 row affected (0.00 sec)
mysql> 
INSERT INTO string_tbl(vchar_fld) VALUES ('QRSTUV');
Query OK, 1 row affected (0.00 sec)
1
если первая строка в порядке сортировки расположена до второй строки
0
если строки идентичны
1
если первая строка в порядке сортировки расположена после второй
строки 


130
Глава 7. Создание, преобразование и работа с данными
mysql> 
INSERT INTO string_tbl(vchar_fld) VALUES ('qrstuv');
Query OK, 1 row affected (0.00 sec)
mysql> 
INSERT INTO string_tbl(vchar_fld) VALUES ('12345');
Query OK, 1 row affected (0.00 sec)
Вот эти пять строк в порядке сортировки:
mysql> 
SELECT vchar_fld
> FROM string_tbl
> 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
:


Строковые данные


Достарыңызбен бөлісу:
1   ...   111   112   113   114   115   116   117   118   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет