Trong MariaDB, STRCMP()
là một hàm chuỗi được tích hợp sẵn để so sánh hai chuỗi. Nó trả về 0
, -1
hoặc 1
, tùy thuộc vào việc các chuỗi có giống nhau hay không.
Dưới đây là các kết quả có thể có và ý nghĩa của chúng:
0 | Các chuỗi giống nhau. |
-1 | Đối số đầu tiên nhỏ hơn đối số thứ hai theo thứ tự sắp xếp hiện tại. |
1 | Đối số đầu tiên lớn hơn đối số thứ hai theo thứ tự sắp xếp hiện tại |
Cú pháp
Cú pháp như sau:
STRCMP(expr1,expr2)
Trong đó expr1
là chuỗi đầu tiên và expr2
là chuỗi thứ hai.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3";
Kết quả:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Ví dụ này minh họa từng kết quả có thể xảy ra mà STRCMP()
có thể sản xuất.
Đây là một ví dụ khác:
SELECT
STRCMP('Cat', 'Cattery') AS "1",
STRCMP('Dog', 'dog') AS "2",
STRCMP('Cow 07', 'Cow 007') AS "3";
Kết quả:
+----+---+---+ | 1 | 2 | 3 | +----+---+---+ | -1 | 0 | 1 | +----+---+---+
Chuỗi trống so với Khoảng trắng
So sánh một chuỗi rỗng với một khoảng trắng dẫn đến 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Kết quả:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Đối số rỗng
Chuyển null
đối với bất kỳ đối số nào (hoặc tất cả các đối số) trả về null
:
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null);
Kết quả:
+---------------------+---------------------+--------------------+ | STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) | +---------------------+---------------------+--------------------+ | NULL | NULL | NULL | +---------------------+---------------------+--------------------+
Thiếu đối số
Đang gọi STRCMP()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT STRCMP();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'