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
(不区分大小写)两种排序规则不兼容,因此无法在两个字符串之间进行比较。其中一个字符串的排序规则必须与另一个字符串匹配。
相关用法
- MySQL STRCMP()用法及代码示例
- MySQL STR_TO_DATE方法用法及代码示例
- MySQL STR_TO_DATE()用法及代码示例
- MySQL STDDEV()用法及代码示例
- MySQL STD()用法及代码示例
- MySQL STDDEV_POP方法用法及代码示例
- MySQL STDDEV_POP()用法及代码示例
- MySQL STD方法用法及代码示例
- MySQL STDDEV_SAMP方法用法及代码示例
- MySQL STDDEV_SAMP()用法及代码示例
- MySQL STDDEV方法用法及代码示例
- MySQL SELECT用法及代码示例
- MySQL SESSION_USER( )用法及代码示例
- MySQL SPACE()用法及代码示例
- MySQL SUM()用法及代码示例
- MySQL SUBSTR方法用法及代码示例
- MySQL SIN方法用法及代码示例
- MySQL SUBSTRING方法用法及代码示例
- MySQL Sysdate()用法及代码示例
- MySQL SIGN方法用法及代码示例
- MySQL SUBSTRING_INDEX方法用法及代码示例
- MySQL SUBSTR()用法及代码示例
- MySQL SEC_TO_TIME方法用法及代码示例
- MySQL SEC_TO_TIME()用法及代码示例
- MySQL SUBSTRING()用法及代码示例
注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | STRCMP method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。