O MySQL 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
use X
Se ocorrerem COLLATE X
e COLLATE
Y
explicitos, então erro
Senão, se todas as collations são X
,
então use X
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()
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.