當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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