Compara o valor de duas strings e retorna um número inteiro. Se as strings forem idênticas, a função retornará 0
. Se a primeira string for alfabeticamente posterior, a função retornará 1
. Se a segunda string for posterior, a função retornará -1
.
Para caracteres multibyte, a comparação é baseada na codificação de byte.
Sinônimo de Função BTTEXT_PATTERN_CMP.
Sintaxe
BPCHARCMP(string1, string2)
Argumentos
- string1
-
Uma string
CHAR
ou uma stringVARCHAR
. - string2
-
Uma string
CHAR
ou uma stringVARCHAR
.
Tipo de retorno
INTEGER
Exemplos
Os exemplos a seguir usam a tabela USERS do banco de dados de amostra TICKIT. Para obter mais informações, consulte Banco de dados de exemplo.
Para determinar se o primeiro nome de um usuário é alfabeticamente posterior ao sobrenome do usuário para as dez primeiras entradas na tabela USERS, use o exemplo a seguir. Para entradas em que a string de FIRSTNAME for alfabeticamente posterior à string de LASTNAME, a função retornará 1
. Se LASTNAME for alfabeticamente posterior a FIRSTNAME, a função retornará -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 |
+--------+-----------+-----------+-----------+
Para retornar todas as entradas na tabela USERS em que a função retorna 0
, use o exemplo a seguir. A função retorna 0
quando FIRSTNAME é idêntico a LASTNAME.
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 |
+--------+-----------+----------+-----------+