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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。