MariaDB STRCMP() 函数使用指南
在 MariaDB 中,STRCMP()
是一个内置的字符串函数,它比较两个字符串并返回 0
,1
或 -1
表示比较结果。
MariaDB STRCMP()
函数基于字符串采用的字符排列规则(collation)比较两个字符串。
MariaDB STRCMP()
语法
这里是 MariaDB STRCMP()
函数的语法:
STRCMP(str1, str2)
参数
str1
- 必需的。参与比较的第 1 个字符串。
str2
- 必需的。参与比较的第 2 个字符串。
如果您不提供参数或提供了错误数量的参数, MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'
。
返回值
MariaDB STRCMP(str1, str2)
函数返回两个字符串比较后的结果:
- 如果
str1
等于str1
,STRCMP()
函数将返回0
。 - 如果
str1
小于str1
,STRCMP()
函数将返回-1
。 - 如果
str1
大于str1
,STRCMP()
函数将返回1
。
当任意个参数为 NULL
时, STRCMP()
函数将返回 NULL
。
MariaDB STRCMP()
示例
基本用法
这个语句展示了 MariaDB STRCMP()
函数的基本用法:
SELECT
STRCMP('abc', 'abc'),
STRCMP('abc', 'def'),
STRCMP('def', 'abc')\G
输出:
STRCMP('abc', 'abc'): 0
STRCMP('abc', 'def'): -1
STRCMP('def', 'abc'): 1
排序规则
STRCMP()
函数基于字符串采用的字符排列规则(collation)比较两个字符串。让我们看下面的例子:
SET @s1 = _latin7 'x' COLLATE latin7_general_ci;
SET @s2 = _latin7 'X' COLLATE latin7_general_ci;
SET @s3 = _latin7 'x' COLLATE latin7_general_cs;
SET @s4 = _latin7 'X' COLLATE latin7_general_cs;
SELECT STRCMP(@s1, @s2), STRCMP(@s3, @s4);
输出:
+------------------+------------------+
| STRCMP(@s1, @s2) | STRCMP(@s3, @s4) |
+------------------+------------------+
| 0 | -1 |
+------------------+------------------+
这里:
@s1
和@s2
的排序规则 (COLLATE) 为latin7_general_ci
,即不区分大小写,因此x
和X
的比较结果返回了0
。@s3
和@s4
的排序规则 (COLLATE) 为latin7_general_cs
,即区分大小写,因此x
和X
的比较结果返回了-1
。
结论
MariaDB STRCMP()
函数用来比较两个字符串并返回比较结果。