本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
比較兩個字串的值並傳回整數。如果字串相同,則函數會傳回 0
。如果第一個字串的字母順序較大,則函數會傳回 1
。如果第二個字串較大,則函數會傳回 -1
。
如果是多位元組字元,則根據位元組編碼來比較。
BTTEXT_PATTERN_CMP 函數 的同義詞。
語法
BPCHARCMP(string1, string2)
引數
- string1
-
CHAR
字串或VARCHAR
字串。 - string2
-
CHAR
字串或VARCHAR
字串。
傳回類型
INTEGER
範例
下列範例使用 TICKIT 範例資料庫中的 USERS 表格。如需詳細資訊,請參閱範本資料庫。
若要針對 USERS 資料表中的前十個項目,按字母順序判斷使用者的名字是否大於使用者的姓氏,請使用下列範例。對於 FIRSTNAME 字串的字母順序比 LASTNAME 字串更後面的那些項目,函數會傳回 1
。如果 LASTNAME 的字母順序比 FIRSTNAME 更後面,函數會傳回 -1
。
SELECT userid, firstname, lastname, BPCHARCMP(firstname, lastname)
FROM users
ORDER BY 1, 2, 3, 4
LIMIT 10;
+--------+-----------+-----------+-----------+
| userid | firstname | lastname | bpcharcmp |
+--------+-----------+-----------+-----------+
| 1 | Rafael | Taylor | -1 |
| 2 | Vladimir | Humphrey | 1 |
| 3 | Lars | Ratliff | -1 |
| 4 | Barry | Roy | -1 |
| 5 | Reagan | Hodge | 1 |
| 6 | Victor | Hernandez | 1 |
| 7 | Tamekah | Juarez | 1 |
| 8 | Colton | Roy | -1 |
| 9 | Mufutau | Watkins | -1 |
| 10 | Naida | Calderon | 1 |
+--------+-----------+-----------+-----------+
若要傳回 USERS 資料表中函數傳回 0
的所有項目,請使用下列範例。當 FIRSTNAME 等於 LASTNAME 時,函數傳回 0
。
SELECT userid, firstname, lastname,
BPCHARCMP(firstname, lastname)
FROM users
WHERE BPCHARCMP(firstname, lastname)=0
ORDER BY 1, 2, 3, 4;
+--------+-----------+----------+-----------+
| userid | firstname | lastname | bpcharcmp |
+--------+-----------+----------+-----------+
| 62 | Chase | Chase | 0 |
| 4008 | Whitney | Whitney | 0 |
| 12516 | Graham | Graham | 0 |
| 13570 | Harper | Harper | 0 |
| 16712 | Cooper | Cooper | 0 |
| 18359 | Chase | Chase | 0 |
| 27530 | Bradley | Bradley | 0 |
| 31204 | Harding | Harding | 0 |
+--------+-----------+----------+-----------+