当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL STRCMP方法用法及代码示例


MySQL 的 STRCMP(~) 方法比较两个字符串,并根据比较结果返回 0、-1、1 之一。

注意

如果一个字符串的权重字符串大于另一个字符串的权重字符串,则认为一个字符串大于另一个字符串。要了解有关权重字符串的更多信息,请访问此处。

参数

1. expr1 | string

要与 expr2 进行比较的字符串。

2. expr2 | string

要与 expr1 进行比较的字符串。

返回值

案子

返回值

表达式1 = 表达式2

0

表达式1 < 表达式2

-1

表达式1 > 表达式2

1

例子

基本用法

检查 'example' 的权重字符串是否大于 'example1' 的权重字符串:

SELECT STRCMP('example', 'example1');



+-------------------------------+
| STRCMP('example', 'example1') |
+-------------------------------+
|                            -1 |
+-------------------------------+

由于'example' 的权重字符串小于'example1' 的权重字符串,因此返回-1。

检查 'example' 的权重字符串是否大于 'Example' 的权重字符串:

SELECT STRCMP('example', 'Example');



+------------------------------+
| STRCMP('example', 'Example') |
+------------------------------+
|                            0 |
+------------------------------+

由于排序规则设置为 utf8mb4_0900_ai_ci(即不区分大小写),因此两个字符串被视为相等。您可以参考此处了解如何检查字符串的排序规则。

检查 'example1' 的权重字符串是否大于 'example' 的权重字符串:

SELECT STRCMP('example1', 'example');



+-------------------------------+
| STRCMP('example1', 'example') |
+-------------------------------+
|                             1 |
+-------------------------------+

由于'example1'的权重字符串大于'example'的权重字符串,因此返回1。

指定排序规则

如果我们为要比较的字符串分配区分大小写的排序规则,则比较将变得区分大小写:

SET @s1 = _utf8mb4 'example' COLLATE utf8mb4_0900_as_cs;
SET @s2 = _utf8mb4 'Example' COLLATE utf8mb4_0900_as_cs;
SELECT STRCMP(@s1, @s2);



+------------------+
| STRCMP(@s1, @s2) |
+------------------+
|               -1 |
+------------------+

现在我们可以看到 'Example' 的权重字符串大于 'example' 的权重字符串。

如果排序规则不兼容,则会引发错误:

SET @s1 = _utf8mb4 'example' COLLATE utf8mb4_0900_as_cs;
SET @s2 = _utf8mb4 'Example' COLLATE utf8mb4_0900_as_ci;
SELECT STRCMP(@s1, @s2);



ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_0900_as_cs,IMPLICIT) and (utf8mb4_0900_as_ci,IMPLICIT) for operation 'strcmp'

由于 utf8mb4_0900_as_cs(区分大小写)和 utf8mb4_0900_as_ci(不区分大小写)两种排序规则不兼容,因此无法在两个字符串之间进行比较。其中一个字符串的排序规则必须与另一个字符串匹配。

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | STRCMP method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。