Strings de Resultados
O MariaDB tem muitos operadores e funções que retornam um string. Esta seção responde a questão: Qual é o conjunto de caracteres e collation de um certa string?
Para funções simples que pegam uma string de entrada e retornam uma string de resultado como saída, a saída do conjunto de caracteres e collation são as mesmas da entrada principal. Por exemplo, UPPER(X)
retorna uma string cuja string de caracter e collation são os mesmo de X
. O mesmo se aplica a: INSTR()
, LCASE()
, LOWER()
, LTRIM()
, MID()
, REPEAT()
, REPLACE()
, REVERSE()
, RIGHT()
, RPAD()
, RTRIM()
, SOUNDEX()
, SUBSTRING()
, TRIM()
, UCASE()
, UPPER()
. (Note também: a função REPLACE()
, diferente de todas as outras funções, ignora a collation da string de entrada e realiza uma comparação de caso-insensitivo todas as vezes.)
Para operações que combinam múltiplas entradas de string e retornam uma única saída de string, As regras de agregamento
do SQL-99 se aplicam. Eles são:
- Se ocorrer um
COLLATE X
explicito, então useX
- Se ocorrerem
COLLATE X
eCOLLATE Y
explicitos, então erro - Senão, se todas as collations são
X
, então useX
- Senão, o resultado não possui collation
Por exemplo, com CASE ... WHEN a THEN b WHEN b THEN c COLLATE X END
, a collation resultante é X
. O mesmo se aplica a: CONCAT()
, GREATEST()
, IF()
, LEAST()
, CASE
, UNION
, ||
, ELT()
.
Para operações que convertem para dados de caracteres, o resultado do conjunto de caracteres e collation da string estão no connection/literals character set e possuem a connection/literals collation. Isto se aplica a: CHAR()
, CAST()
, CONV()
, FORMAT()
. HEX()
, SPACE()
.