比较两个字符串的值并返回整数。如果字符串相同,此函数返回 0
。如果按字母顺序,第一个字符串更靠后,则函数返回 1
。如果第二个字符串较大,则函数返回 -1
。
对于多字节字符,该比较基于字节编码。
语法
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 |
+--------+-----------+----------+-----------+