MySQL STRCMP() 函数使用指南
MySQL STRCMP() 函数比较两个字符串并返回比较结果。STRCMP() 函数基于字符串采用的字符排列规则(collation)比较两个字符串。
STRCMP() 语法
这里是 MySQL STRCMP() 函数的语法:
STRCMP(str1, str2)
参数
str1- 必需的。参与比较的第 1 个字符串。
str2- 必需的。参与比较的第 2 个字符串。
返回值
STRCMP(str1, str2) 函数返回两个字符串比较后的结果。
- 如果
str1等于str1,STRCMP()函数将返回0。 - 如果
str1小于str1,STRCMP()函数将返回-1。 - 如果
str1大于str1,STRCMP()函数将返回1。 - 当任意个参数为
NULL时,STRCMP()函数将返回NULL。
STRCMP() 示例
这里列出了几个常见的 STRCMP() 示例。
SELECT
STRCMP('hello', 'hello'),
STRCMP('hello1', 'hello'),
STRCMP('hello', 'hello1'),
STRCMP('hello', 'world'),
STRCMP(NULL, NULL)\G
STRCMP('hello', 'hello'): 0
STRCMP('hello1', 'hello'): 1
STRCMP('hello', 'hello1'): -1
STRCMP('hello', 'world'): -1
STRCMP(NULL, NULL): NULLSTRCMP() 函数基于字符串采用的字符排列规则(collation)比较两个字符串。让我们看下面的例子:
SET @s1 = _utf8mb4 'x' COLLATE latin1_general_ci;
SET @s2 = _utf8mb4 'X' COLLATE utf8mb4_0900_ai_ci;
SET @s3 = _utf8mb4 'x' COLLATE utf8mb4_0900_as_cs;
SET @s4 = _utf8mb4 'X' COLLATE utf8mb4_0900_as_cs;
SELECT STRCMP(@s1, @s2), STRCMP(@s3, @s4);
+------------------+------------------+
| STRCMP(@s1, @s2) | STRCMP(@s3, @s4) |
+------------------+------------------+
| 0 | -1 |
+------------------+------------------+这里:
@s1和@s2的排序规则 (COLLATE) 为utf8mb4_0900_ai_ci,即不区分大小写,因此x和X的比较结果返回了0。@s3和@s4的排序规则 (COLLATE) 为utf8mb4_0900_as_cs,即区分大小写,因此x和X的比较结果返回了-1。