O AnalyticDB for MySQL oferece um conjunto de funções de string para tarefas comuns de processamento, como conversão de maiúsculas e minúsculas, extração de substrings, busca por padrões, codificação e decodificação de dados, entre outras. Este tópico descreve a sintaxe e o uso de cada função, com exemplos.
Funções neste tópico:
|
Categoria |
Funções |
|
Comprimento e informações de caracteres |
ASCII, BIT_LENGTH, CHAR_LENGTH ou CHARACTER_LENGTH, LENGTH ou OCTET_LENGTH, ORD |
|
Conversão de maiúsculas e minúsculas |
|
|
Concatenação e formatação |
|
|
Substrings e extração |
|
|
Busca e posição |
|
|
Correspondência de padrões |
|
|
Preenchimento e remoção de espaços |
|
|
Divisão |
|
|
Codificação e decodificação |
BIN, CHAR, FROM_BASE64, FROM_UTF8, HEX, OCT, TO_BASE64, TO_UTF8, UNHEX |
|
Comparação |
|
|
Operações de conjunto |
|
|
Substituição e inversão |
|
|
Criptografia e hash |
ASCII
ascii(str)
Retorna o valor decimal ASCII do caractere mais à esquerda de str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada ou caractere único |
Tipo de retorno: BIGINT
Exemplos:
SELECT ascii('2');
+------------+
| ascii('2') |
+------------+
| 50 |
+------------+
SELECT ascii('dx');
+-------------+
| ascii('dx') |
+-------------+
| 100 |
+-------------+
BIN
bin(N)
Retorna a representação em string binária de N.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT |
Inteiro a converter |
Tipo de retorno: VARCHAR
Notas de uso:
Se
NforNULL, a função retornaNULL.
Exemplo:
SELECT bin(12);
+---------+
| bin(12) |
+---------+
| 1100 |
+---------+
BIT_LENGTH
bit_length(str)
Retorna o comprimento de str em bits.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: BIGINT
Exemplos:
SELECT bit_length('text');
+--------------------+
| bit_length('text') |
+--------------------+
| 32 |
+--------------------+
SELECT bit_length('China');
+---------------------+
| bit_length('China') |
+---------------------+
| 40 |
+---------------------+
CHAR
char(N1, N2, ...)
Retorna uma string composta pelos caracteres correspondentes aos códigos ASCII decimais de N1, N2 e assim por diante.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT |
Um ou mais códigos ASCII inteiros |
Tipo de retorno: VARBINARY
Exemplo:
SELECT char(97,110,97,108,121,116,105,99,100,98);
+-------------------------------------------+
| char(97,110,97,108,121,116,105,99,100,98) |
+-------------------------------------------+
| analyticdb |
+-------------------------------------------+
CHAR_LENGTH ou CHARACTER_LENGTH
char_length(str)
character_length(str)
Retorna o comprimento de str em caracteres.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: BIGINT
Notas de uso:
Cada caractere chinês conta como
1.
Exemplos:
SELECT char_length('China');
+----------------------+
| char_length('China') |
+----------------------+
| 5 |
+----------------------+
SELECT char_length('abc');
+--------------------+
| char_length('abc') |
+--------------------+
| 3 |
+--------------------+
CONCAT
concat(str1, ..., strN)
Concatena várias strings em uma única string.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
Duas ou mais strings para concatenar |
Tipo de retorno: VARCHAR
Notas de uso:
Se qualquer argumento for
NULL, o valor retornado seráNULL.
Exemplos:
SELECT concat('aliyun', ', ', 'analyticdb');
+--------------------------------------+
| concat('aliyun', ', ', 'analyticdb') |
+--------------------------------------+
| aliyun, analyticdb |
+--------------------------------------+
SELECT concat('abc', null, 'def');
+--------------------------+
| concat('abc',null,'def') |
+--------------------------+
| NULL |
+--------------------------+
CONCAT_WS
concat_ws(separator, str1, ..., strN)
Concatena várias strings usando um separador especificado. Valores NULL entre os argumentos de string são ignorados.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
Delimitador inserido entre cada string |
|
|
VARCHAR |
Strings a concatenar |
Tipo de retorno: VARCHAR
Notas de uso:
Argumentos de string
NULLsão ignorados e não produzem separadores duplos nem valores vazios na saída.
Exemplos:
SELECT concat_ws(',', 'First name', 'Second name', 'Last Name') AS result;
+----------------------------------+
| result |
+----------------------------------+
| First name,Second name,Last Name |
+----------------------------------+
SELECT concat_ws(',', 'First name', NULL, 'Last Name') AS result;
+----------------------+
| result |
+----------------------+
| First name,Last Name |
+----------------------+
ELT
elt(N, str1, ..., strN)
Retorna a enésima string da lista, conforme o índice N.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT |
Índice baseado em 1 na lista de strings |
|
|
VARCHAR |
Lista de strings |
Tipo de retorno: VARCHAR
Notas de uso:
A função retorna
NULLseN < 1ou seNfor maior que o número de argumentos de string.
Exemplo:
SELECT elt(4, 'Aa', 'Bb', 'Cc', 'Dd');
+--------------------------------+
| elt(4, 'Aa', 'Bb', 'Cc', 'Dd') |
+--------------------------------+
| Dd |
+--------------------------------+
ENCRYPT
encrypt(x, y)
Criptografa x usando y como valor de salt.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARBINARY |
String a criptografar |
|
|
VARCHAR |
Valor de salt |
Tipo de retorno: VARBINARY
Exemplo:
SELECT encrypt('abdABC123', 'key');
+--------------------------------------------------------+
| encrypt('abdABC123','key') |
+--------------------------------------------------------+
| 0x6B657A617A6D63496F2E614377 |
+--------------------------------------------------------+
EXPORT_SET
export_set(bits, onstr, offstr [, separator [, number_of_bits]])
Converte bits para sua representação binária e retorna uma string construída pela substituição de cada posição de bit por onstr (para bit 1) ou offstr (para bit 0), separados por separator. A verificação dos bits ocorre da direita para a esquerda.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT |
Inteiro a converter para binário |
|
|
VARCHAR |
String usada para o valor de bit |
|
|
VARCHAR |
String usada para o valor de bit |
|
|
VARCHAR |
(Opcional) Delimitador entre os valores de saída |
|
|
BIGINT |
(Opcional) Número de bits a verificar, da direita para a esquerda. O padrão é |
Tipo de retorno: VARCHAR
Notas de uso:
Se
number_of_bitsfor maior que64, o valor é limitado a64.Quando
number_of_bitsé-1, a função utiliza o valor padrão64.
Exemplos:
Converta 5 para binário e verifique os dois bits mais à direita. Substitua 1 por a e 0 por b, separados por vírgulas:
SELECT export_set(5, 'a', 'b', ',', 2);
+-----------------------------+
| export_set(5,'a','b',',',2) |
+-----------------------------+
| a,b |
+-----------------------------+
Converta 6 para binário e verifique os 10 bits mais à direita. Substitua 1 por 1 e 0 por 0, separados por vírgulas:
SELECT export_set(6, '1', '0', ',', 10);
+------------------------------+
| export_set(6,'1','0',',',10) |
+------------------------------+
| 0,1,1,0,0,0,0,0,0,0 |
+------------------------------+
FIELD
FIELD(str, str1, str2, ..., strN)
Retorna a posição de str na lista str1, str2, ..., strN.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String a buscar |
|
|
VARCHAR |
Lista de strings onde buscar |
Tipo de retorno: BIGINT
Notas de uso:
Retorna
0casostrnão seja encontrada na lista.
Exemplo:
SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');
+-------------------------------------------+
| FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff') |
+-------------------------------------------+
| 2 |
+-------------------------------------------+
FIND_IN_SET
find_in_set(str, strlist)
Retorna a posição de str na lista separada por vírgulas strlist.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String a buscar |
|
|
VARCHAR |
Lista de strings separadas por vírgula |
Tipo de retorno: BIGINT
Notas de uso:
Retorna
0sestrnão existir emstrlistou sestrlistfor uma string vazia.Retorna
NULLquandostroustrlistforNULL.
Exemplo:
SELECT find_in_set('b', 'a,b,c,d');
+----------------------------+
| find_in_set('b','a,b,c,d') |
+----------------------------+
| 2 |
+----------------------------+
FORMAT
format(X, D)
Formata o número X no estilo #,###,###.##, arredondado para D casas decimais, e retorna o resultado como string.
|
Parâmetro |
Tipo |
Descrição |
|
|
DOUBLE |
Número a formatar |
|
|
BIGINT |
Número de casas decimais |
Tipo de retorno: VARCHAR
Notas de uso:
Se
Dfor0, o resultado não terá ponto decimal nem parte fracionária.
Exemplo:
SELECT format(12332.123456, 4) AS result1,
format(12332.1, 4) AS result2,
format(12332.2, 0) AS result3;
+-------------+-------------+---------+
| result1 | result2 | result3 |
+-------------+-------------+---------+
| 12,332.1235 | 12,332.1000 | 12,332 |
+-------------+-------------+---------+
FROM_BASE64
from_base64(x)
Decodifica uma string codificada em Base64 e retorna o resultado decodificado.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARBINARY ou VARCHAR |
Entrada codificada em Base64 |
Tipo de retorno: VARBINARY
Notas de uso:
O valor retornado é do tipo VARBINARY. Para obter um resultado VARCHAR, converta-o usando um dos métodos a seguir:
AnalyticDB for MySQL V3.1.4 ou posterior: Use
CAST AS VARCHAR. Para mais informações, consulte Funções CAST.Anterior à V3.1.4: Utilize a função
FROM_UTF8. Para mais informações, consulte FROM_UTF8.
Exemplos:
Entrada como string VARCHAR:
SELECT from_base64('Q2hpbmE=');
+--------------------------------------------------+
| from_base64('Q2hpbmE=') |
+--------------------------------------------------+
| 0x4368696E61 |
+--------------------------------------------------+
Para obter o valor VARCHAR original, faça o cast do resultado:
SELECT cast(from_base64('Q2hpbmE=') AS varchar);
+------------------------------------------+
| cast(from_base64('Q2hpbmE=') AS varchar) |
+------------------------------------------+
| China |
+------------------------------------------+
Entrada como valor VARBINARY:
SELECT from_base64(cast(to_base64('China') AS varbinary));
+--------------------------------------------------------------------------------------------------------+
| from_base64(cast(to_base64('China') AS varbinary)) |
+--------------------------------------------------------------------------------------------------------+
| 0x4368696E61 |
+--------------------------------------------------------------------------------------------------------+
FROM_UTF8
from_utf8(x)
from_utf8(x, y)
Decodifica um valor binário codificado em UTF-8 e retorna uma string VARCHAR.
from_utf8(x)— Decodificaxe retorna o resultado decodificado.from_utf8(x, y)— Decodificaxe substitui quaisquer sequências de bytes inválidas pory.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARBINARY |
Entrada codificada em UTF-8 a decodificar |
|
|
VARCHAR ou BIGINT |
(Opcional) Caractere de substituição para bytes inválidos. Aceita o próprio caractere (por exemplo, |
Tipo de retorno: VARCHAR
Exemplos:
Decodifique uma string válida codificada em UTF-8:
SELECT from_utf8(to_utf8('hello'));
+-----------------------------+
| from_utf8(to_utf8('hello')) |
+-----------------------------+
| hello |
+-----------------------------+
Decodifique um valor não codificado em UTF-8 (bytes inválidos são substituídos por string vazia por padrão):
SELECT from_utf8(unhex('58BF'));
+--------------------------+
| from_utf8(unhex('58BF')) |
+--------------------------+
| X |
+--------------------------+
Substitua bytes inválidos por #:
SELECT from_utf8(unhex('58BF'), '#');
+-------------------------------+
| from_utf8(unhex('58BF'), '#') |
+-------------------------------+
| X# |
+-------------------------------+
Substitua bytes inválidos usando o código ASCII 35 (equivalente a #):
SELECT from_utf8(unhex('58BF'), '35');
+-------------------------------+
| from_utf8(unhex('58BF'), '35') |
+-------------------------------+
| X# |
+-------------------------------+
HEX
hex(x)
Retorna a representação em string hexadecimal de x.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT ou VARCHAR |
Inteiro ou string a converter |
Tipo de retorno: VARCHAR
Exemplos:
Entrada inteira:
SELECT hex(16);
+---------+
| hex(16) |
+---------+
| 10 |
+---------+
Entrada string:
SELECT hex('16');
+-----------+
| hex('16') |
+-----------+
| 3136 |
+-----------+
INSTR
instr(str, substr)
Retorna a posição da primeira ocorrência de substr dentro de str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String onde buscar |
|
|
VARCHAR |
Substring a buscar |
Tipo de retorno: BIGINT
Exemplo:
SELECT instr('foobarbar', 'bar');
+---------------------------+
| instr('foobarbar', 'bar') |
+---------------------------+
| 4 |
+---------------------------+
LEFT
LEFT(str, len)
Retorna os len caracteres mais à esquerda de str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
BIGINT |
Número de caracteres a retornar |
Tipo de retorno: VARCHAR
Notas de uso:
Retorna
NULLsestroulenforNULL.
Exemplo:
SELECT LEFT('foobarbar', 5);
+----------------------+
| LEFT('foobarbar', 5) |
+----------------------+
| fooba |
+----------------------+
LENGTH ou OCTET_LENGTH
length(str)
octet_length(str)
Retorna o comprimento de str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: BIGINT
Exemplo:
SELECT length('aliyun');
+------------------+
| length('aliyun') |
+------------------+
| 6 |
+------------------+
LIKE
expression [NOT] LIKE pattern [ESCAPE 'escape_char']
Compara expression com pattern. Retorna 1 se houver correspondência e 0 caso contrário.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String a comparar |
|
|
VARCHAR |
Padrão com curingas. Use |
|
|
VARCHAR |
(Opcional) Caractere de escape que trata o |
Tipo de retorno: BIGINT
Exemplos:
Correspondência básica com curingas:
SELECT 'David!' LIKE 'David_' AS result1,
'David!' NOT LIKE 'David_' AS result2,
'David!' LIKE '%D%v%' AS result3;
+---------+---------+---------+
| result1 | result2 | result3 |
+---------+---------+---------+
| 1 | 0 | 1 |
+---------+---------+---------+
Uso de caractere de escape para corresponder a um underscore literal:
SELECT 'David_' LIKE 'David|_' ESCAPE '|';
+----------------------------------+
| David_' LIKE 'David|_' ESCAPE '| |
+----------------------------------+
| 1 |
+----------------------------------+
LOCATE
locate(substr, str)
locate(substr, str, pos)
Retorna a posição da primeira ocorrência de substr em str. Opcionalmente, inicia a busca a partir da posição pos.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
Substring a buscar |
|
|
VARCHAR |
String onde buscar |
|
|
BIGINT |
(Opcional) Posição inicial para a busca |
Tipo de retorno: BIGINT
Notas de uso:
Retorna
0casosubstrnão seja encontrada emstr.Retorna
NULLsesubstroustrforNULL.
Exemplos:
Busca desde o início:
SELECT locate('bar', 'foobarbar');
+----------------------------+
| locate('bar', 'foobarbar') |
+----------------------------+
| 4 |
+----------------------------+
Busca iniciando na posição 7:
SELECT locate('bar', 'foobarbar', 7);
+-------------------------------+
| locate('bar', 'foobarbar', 7) |
+-------------------------------+
| 7 |
+-------------------------------+
LOWER ou LCASE
lower(str)
lcase(str)
Converte todas as letras de str para minúsculas.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: VARCHAR
Exemplo:
SELECT lower('Aliyun');
+-----------------+
| lower('Aliyun') |
+-----------------+
| aliyun |
+-----------------+
LPAD
lpad(str, len, padstr)
Preenche str à esquerda com padstr até atingir o comprimento total de len caracteres.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String a preencher |
|
|
BIGINT |
Comprimento total desejado |
|
|
VARCHAR |
String de preenchimento |
Tipo de retorno: VARCHAR
Notas de uso:
Se
strfor maior quelen, o valor retornado é truncado paralencaracteres.
Exemplo:
SELECT lpad('Aliyun', 9, '#');
+----------------------+
| lpad('Aliyun',9,'#') |
+----------------------+
| ###Aliyun |
+----------------------+
LTRIM
ltrim(str)
Remove todos os espaços à esquerda de str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: VARCHAR
Exemplo:
SELECT ltrim(' abc');
+----------------+
| ltrim(' abc') |
+----------------+
| abc |
+----------------+
MAKE_SET
make_set(bits, str1, str2, ...)
Retorna um conjunto de strings separadas por vírgulas, selecionadas pelas posições de bit definidas em bits. str1 corresponde ao bit 0, str2 ao bit 1 e assim por diante.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT |
Máscara de bits que seleciona quais strings incluir |
|
|
VARCHAR |
Strings correspondentes a cada posição de bit |
Tipo de retorno: VARCHAR
Notas de uso:
Valores
NULLna lista de strings não são incluídos no resultado.
Exemplos:
SELECT make_set(5, 'hello', 'nice', 'world');
+------------------------------------+
| make_set(5,'hello','nice','world') |
+------------------------------------+
| hello,world |
+------------------------------------+
5 em binário é 101, portanto os bits 0 e 2 estão definidos, selecionando hello e world.
SELECT make_set(1 | 4, 'hello', 'nice', NULL, 'world') AS result;
+--------+
| result |
+--------+
| hello |
+--------+
1 | 4 = 5 (binário 101), logo os bits 0 e 2 estão definidos. A string na posição de bit 2 é NULL, então apenas hello é retornado.
MD5_MUR
MD5_MUR(x)
Calcula o hash MD5 de x e depois o converte em um valor de hash LONG usando o algoritmo MurmurHash3. Em comparação com CRC32, esta função apresenta menor taxa de colisão.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: LONG
Pré-requisitos: Requer versão de kernel 3.2.5 ou posterior.
Exemplo:
SELECT MD5_MUR('TEST') AS result;
+--------------------------+
| result |
+--------------------------+
| -6711128042951586494 |
+--------------------------+
MID
mid(str, pos, len)
Retorna uma substring de comprimento len de str, começando na posição pos. Esta função equivale a SUBSTR e SUBSTRING.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
BIGINT |
Posição inicial (baseada em 1). Use um valor negativo para contar a partir do final da string |
|
|
BIGINT |
Número de caracteres a retornar |
Tipo de retorno: VARCHAR
Exemplos:
SELECT mid('Quadratically', 5, 6);
+--------------------------+
| mid('Quadratically',5,6) |
+--------------------------+
| ratica |
+--------------------------+
SELECT mid('Sakila', -5, 3);
+----------------------+
| mid('Sakila', -5, 3) |
+----------------------+
| aki |
+----------------------+
OCT
oct(N)
Retorna a representação em string octal de N.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT |
Inteiro a converter |
Tipo de retorno: VARCHAR
Notas de uso:
Retorna
NULLseNforNULL.
Exemplo:
SELECT oct(12);
+---------+
| oct(12) |
+---------+
| 14 |
+---------+
ORD
ord(x)
Retorna o código do caractere mais à esquerda de x se este for um caractere multibyte.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARBINARY ou VARCHAR |
String de entrada |
Tipo de retorno: LONG
Exemplos:
Entrada VARCHAR:
SELECT ord('China');
+--------------+
| ord('China') |
+--------------+
| 67 |
+--------------+
Entrada VARBINARY:
SELECT ord(cast('China' AS varbinary));
+---------------------------------+
| ord(cast('China' AS varbinary)) |
+---------------------------------+
| 67 |
+---------------------------------+
POSITION
position(substr IN str)
Retorna a posição da primeira ocorrência de substr em str. As posições são baseadas em 1.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
Substring a buscar |
|
|
VARCHAR |
String onde buscar |
Tipo de retorno: BIGINT
Notas de uso:
Retorna
0casosubstrnão seja encontrada.
Exemplo:
SELECT position('bar' IN 'foobarbar');
+--------------------------------+
| position('bar' in 'foobarbar') |
+--------------------------------+
| 4 |
+--------------------------------+
REPEAT
repeat(str, count)
Retorna str repetida count vezes.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String a repetir |
|
|
BIGINT |
Número de repetições |
Tipo de retorno: VARCHAR
Notas de uso:
Retorna uma string vazia se
count < 1.Retorna
NULLquandostroucountforNULL.
Exemplos:
SELECT repeat('a', 3);
+----------------+
| repeat('a', 3) |
+----------------+
| aaa |
+----------------+
SELECT repeat('abc', null);
+---------------------+
| repeat('abc', null) |
+---------------------+
| NULL |
+---------------------+
SELECT repeat(null, 3);
+-----------------+
| repeat(null, 3) |
+-----------------+
| NULL |
+-----------------+
REPLACE
replace(str, from_str, to_str)
Substitui todas as ocorrências de from_str em str por to_str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
VARCHAR |
Substring a substituir |
|
|
String de substituição |
Tipo de retorno: VARCHAR
Exemplo:
SELECT replace('WWW.aliyun.com', 'W', 'w');
+-------------------------------------+
| replace('WWW.aliyun.com', 'W', 'w') |
+-------------------------------------+
| www.aliyun.com |
+-------------------------------------+
REVERSE
reverse(str)
Retorna str com os caracteres em ordem inversa.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: VARCHAR
Exemplo:
SELECT reverse('123456');
+-------------------+
| reverse('123456') |
+-------------------+
| 654321 |
+-------------------+
RIGHT
RIGHT(str, len)
Retorna os len caracteres mais à direita de str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
BIGINT |
Número de caracteres a retornar |
Tipo de retorno: VARCHAR
Notas de uso:
Retorna
NULLsestroulenforNULL.
Exemplo:
SELECT RIGHT('abc', 3);
+----------------+
| RIGHT('abc',3) |
+----------------+
| abc |
+----------------+
RLIKE ou REGEXP
expression RLIKE pattern
expression REGEXP pattern
Retorna 1 se expression corresponder à expressão regular pattern e 0 caso contrário.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String a comparar |
|
|
VARCHAR |
Padrão de expressão regular |
Tipo de retorno: BOOLEAN
Notas de uso:
Retorna
NULLseexpressionoupatternforNULL.
Exemplos:
SELECT 'Michael!' REGEXP '.*';
+----------------------+
| Michael!' REGEXP '.* |
+----------------------+
| 1 |
+----------------------+
SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+-------------------------------------+
| new*\n*line' REGEXP 'new\\*.\\*line |
+-------------------------------------+
| 0 |
+-------------------------------------+
SELECT 'c' REGEXP '^[a-d]';
+-------------------+
| c' REGEXP '^[a-d] |
+-------------------+
| 1 |
+-------------------+
RPAD
rpad(str, len, padstr)
Preenche str à direita com padstr até atingir o comprimento total de len caracteres.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String a preencher |
|
|
BIGINT |
Comprimento total desejado |
|
|
VARCHAR |
String de preenchimento |
Tipo de retorno: VARCHAR
Notas de uso:
Se
strfor maior quelen, o valor retornado é truncado paralencaracteres.
Exemplo:
SELECT rpad('Aliyun', 9, '#');
+----------------------+
| rpad('Aliyun',9,'#') |
+----------------------+
| Aliyun### |
+----------------------+
RTRIM
rtrim(str)
Remove todos os espaços à direita de str.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: VARCHAR
Exemplo:
SELECT rtrim('barbar ');
+--------------------+
| rtrim('barbar ') |
+--------------------+
| barbar |
+--------------------+
SPACE
space(N)
Retorna uma string com N caracteres de espaço.
|
Parâmetro |
Tipo |
Descrição |
|
|
BIGINT |
Número de espaços |
Tipo de retorno: VARCHAR
Notas de uso:
Combine com
concat()para inserir espaços em uma string maior.
Exemplo:
SELECT concat('#', space(6), '#');
+----------------------------+
| concat("#", space(6), "#") |
+----------------------------+
| # # |
+----------------------------+
SPLIT
split(string, delimiter)
Divide string em cada ocorrência de delimiter e retorna as partes como um array.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
VARCHAR |
Delimitador para divisão |
Tipo de retorno: ARRAY\<varchar\>
Exemplo:
SELECT split('1#2#3', '#'),
split('#1#2#3#', '#'),
split('123', '#');
+---------------------+-----------------------+-------------------+
| split('1#2#3', '#') | split('#1#2#3#', '#') | split('123', '#') |
+---------------------+-----------------------+-------------------+
| ["1","2","3"] | ["","1","2","3",""] | ["123"] |
+---------------------+-----------------------+-------------------+
SPLIT_PART
split_part(string, delimiter, index)
Divide string pelo delimiter e retorna o elemento na posição index. O índice é baseado em 1.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
VARCHAR |
Delimitador para divisão |
|
|
BIGINT |
Posição baseada em 1 do elemento a retornar |
Tipo de retorno: VARCHAR
Notas de uso:
Retorna
NULLseindexfor maior que o número de campos resultantes.
Exemplo:
SELECT split_part('A#B#C', '#', 2),
split_part('A#B#C', '#', 4);
+-----------------------------+-----------------------------+
| split_part('A#B#C', '#', 2) | split_part('A#B#C', '#', 4) |
+-----------------------------+-----------------------------+
| B | NULL |
+-----------------------------+-----------------------------+
SPLIT_TO_MAP
split_to_map(string, entryDelimiter, keyValueDelimiter)
Divide string em pares chave-valor e retorna um mapa. entryDelimiter separa os pares individuais e keyValueDelimiter separa cada chave de seu valor.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
VARCHAR |
Delimitador entre pares chave-valor |
|
|
VARCHAR |
Delimitador entre chave e valor dentro de cada par |
Tipo de retorno: MAP\<varchar, varchar\>
Exemplo:
SELECT split_to_map('k1:v1,k2:v2', ',', ':'),
split_to_map('', ',', ':');
+---------------------------------------+----------------------------+
| split_to_map('k1:v1,k2:v2', ',', ':') | split_to_map('', ',', ':') |
+---------------------------------------+----------------------------+
| {"k1":"v1","k2":"v2"} | {} |
+---------------------------------------+----------------------------+
STRCMP
strcmp(str1, str2)
Compara str1 e str2 com base na ordem de classificação atual.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
Primeira string |
|
|
VARCHAR |
Segunda string |
Tipo de retorno: BIGINT
Retorna:
0se as strings forem idênticas-1sestr1for menor questr21sestr1for maior questr2
Exemplo:
SELECT strcmp('text', 'text2');
+-------------------------+
| strcmp('text', 'text2') |
+-------------------------+
| -1 |
+-------------------------+
SUBSTR ou SUBSTRING
substr(str, pos)
substr(str FROM pos)
substr(str, pos, len)
substr(str FROM pos FOR len)
substring(str, pos)
substring(str FROM pos)
substring(str, pos, len)
substring(str FROM pos FOR len)
Retorna uma substring de str começando na posição pos, opcionalmente limitada a len caracteres.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
BIGINT |
Posição inicial (baseada em 1). Um valor negativo conta a partir do final da string |
|
|
BIGINT |
(Opcional) Número máximo de caracteres a retornar. Se omitido, retorna todos os caracteres de |
Tipo de retorno: VARCHAR
Exemplos:
Retorne tudo da posição 6 até o final:
SELECT substr('helloworld', 6);
+-------------------------+
| substr('helloworld', 6) |
+-------------------------+
| world |
+-------------------------+
Usando a sintaxe FROM:
SELECT substr('helloworld' FROM 6);
+-----------------------------+
| substr('helloworld' FROM 6) |
+-----------------------------+
| world |
+-----------------------------+
Retorne 3 caracteres começando na posição 6:
SELECT substr('helloworld', 6, 3);
+----------------------------+
| substr('helloworld', 6, 3) |
+----------------------------+
| wor |
+----------------------------+
Usando a sintaxe FROM ... FOR:
SELECT substr('helloworld' FROM 6 FOR 3);
+-----------------------------------+
| substr('helloworld' FROM 6 FOR 3) |
+-----------------------------------+
| wor |
+-----------------------------------+
SUBSTRING_INDEX
substring_index(str, delim, count)
Retorna uma substring de str cortada na enésima ocorrência de delim, definida por count.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
|
|
VARCHAR |
Delimitador a buscar (diferencia maiúsculas de minúsculas) |
|
|
BIGINT |
Número de ocorrências do delimitador. Valores positivos contam da esquerda e retornam tudo à esquerda da correspondência; valores negativos contam da direita e retornam tudo à direita |
Tipo de retorno: VARCHAR
Notas de uso:
A busca por
delimdiferencia maiúsculas de minúsculas.
Exemplo:
Retorne tudo antes do segundo .:
SELECT substring_index('www.aliyun.com', '.', 2);
+-------------------------------------------+
| substring_index('www.aliyun.com', '.', 2) |
+-------------------------------------------+
| www.aliyun |
+-------------------------------------------+
TO_BASE64
to_base64(x)
Retorna a forma codificada em Base64 de x.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARBINARY ou VARCHAR |
Entrada a codificar |
Tipo de retorno: VARCHAR
Exemplos:
Entrada VARCHAR:
SELECT to_base64('China');
+--------------------+
| to_base64('China') |
+--------------------+
| Q2hpbmE= |
+--------------------+
Entrada VARBINARY:
SELECT to_base64(cast('China' AS varbinary));
+---------------------------------------+
| to_base64(cast('China' AS varbinary)) |
+---------------------------------------+
| Q2hpbmE= |
+---------------------------------------+
TO_UTF8
to_utf8(x)
Retorna a forma codificada em UTF-8 de x.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: VARCHAR
Exemplo:
SELECT from_utf8(to_utf8('China'));
+-----------------------------+
| from_utf8(to_utf8('China')) |
+-----------------------------+
| China |
+-----------------------------+
TRIM
trim([remstr FROM] str)
trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Remove espaços à esquerda e à direita de str ou remove caracteres correspondentes a remstr do(s) lado(s) especificado(s).
|
Parâmetro |
Tipo |
Descrição |
||
|
|
VARCHAR |
String de entrada |
||
|
|
VARCHAR |
(Opcional) Caractere(s) a remover. O padrão é espaço |
||
|
|
LEADING |
TRAILING` |
— |
(Opcional) Lado de onde remover caracteres. O padrão é |
Tipo de retorno: VARCHAR
Exemplos:
Remova espaços à esquerda e à direita:
SELECT trim(' bar ');
+------------------+
| trim(' bar ') |
+------------------+
| bar |
+------------------+
Remova um caractere específico de ambos os lados:
SELECT trim(BOTH 'x' FROM 'xxxbarxxx');
+---------------------------------+
| trim(BOTH 'x' FROM 'xxxbarxxx') |
+---------------------------------+
| bar |
+---------------------------------+
Remova apenas do lado esquerdo:
SELECT trim(LEADING 'x' FROM 'xxxbarxxx');
+------------------------------------+
| trim(LEADING 'x' FROM 'xxxbarxxx') |
+------------------------------------+
| barxxx |
+------------------------------------+
Remova apenas do lado direito:
SELECT trim(TRAILING 'x' FROM 'xxxbarxxx');
+-------------------------------------+
| trim(TRAILING 'x' from 'xxxbarxxx') |
+-------------------------------------+
| xxxbar |
+-------------------------------------+
UNHEX
unhex(x)
Interpreta cada par de dígitos hexadecimais em x como um valor de byte e retorna a string binária correspondente.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARBINARY ou VARCHAR |
String hexadecimal a decodificar |
Tipo de retorno: VARBINARY
Notas de uso:
O valor retornado é do tipo VARBINARY. Para obter um resultado VARCHAR, converta-o usando um dos métodos a seguir:
AnalyticDB for MySQL V3.1.4 ou posterior: Use
CAST AS VARCHAR. Para mais informações, consulte Funções CAST.Anterior à V3.1.4: Utilize a função
FROM_UTF8. Para mais informações, consulte FROM_UTF8.
Se a entrada contiver caracteres não hexadecimais, a função retorna NULL.
Exemplos:
Entrada VARCHAR — use CAST para obter o resultado VARCHAR:
SELECT unhex(hex('China'));
+------------------------------------------+
| unhex(hex('China')) |
+------------------------------------------+
| China |
+------------------------------------------+
Para obter o valor VARCHAR explicitamente:
SELECT cast(unhex(hex('China')) AS varchar);
+--------------------------------------+
| cast(unhex(hex('China')) AS varchar) |
+--------------------------------------+
| China |
+--------------------------------------+
Entrada VARBINARY:
SELECT unhex(cast(hex('China') AS varbinary));
+------------------------------------------+
| unhex(cast(hex('China') AS varbinary)) |
+------------------------------------------+
| China |
+------------------------------------------+
UPPER ou UCASE
upper(str)
ucase(str)
Converte todas as letras de str para maiúsculas.
|
Parâmetro |
Tipo |
Descrição |
|
|
VARCHAR |
String de entrada |
Tipo de retorno: VARCHAR
Exemplo:
SELECT upper('Aliyun');
+-----------------+
| upper('Aliyun') |
+-----------------+
| ALIYUN |
+-----------------+