MySQL tiene varios operadores y funciones que retornan una cadena de caracteres. Esta sección responde a la pregunta: ¿Cuál es el conjunto de caracteres y colación de esta cadena de caracteres?
Para funciones simples que toman una entrada de cadenas de
caracteres y devuelven una cadena de caracteres como salida, el
conjunto de caracteres y colación de la salida son las mismas
que las de la entrada. Por ejemplo
UPPER(
devuelve
una cadena de caracteres con un conjunto de caracteres y
colación iguales a las de X
)X
. Lo
mismo se aplica para INSTR()
,
LCASE()
, LOWER()
,
LTRIM()
, MID()
,
REPEAT()
, REPLACE()
,
REVERSE()
, RIGHT()
,
RPAD()
, RTRIM()
,
SOUNDEX()
, SUBSTRING()
,
TRIM()
, UCASE()
, y
UPPER()
. (Debe tenerse en cuenta que la
función REPLACE()
, a diferencia del resto de
funciones, ignora siempre la colación de la cadena de
caracteres de entrada y realiza una comparación que no
distingue entre mayúsculas y minúsculas).
Para operaciones que combinan varias cadenas de caracteres de entrada y devuelven una única cadena de salida, se aplica la “regla de agregación”estándar de SQL:
Si hay un COLLATE
explícito, usa
X
X
.
Si hay un COLLATE
y X
COLLATE
explícitos, muestra
un error.
Y
De lo contrario, si todas las colaciones son
X
, usa
X
.
En cualquier otro caso, el resultado no tiene colación.
Por ejemplo, con CASE ... WHEN a THEN b WHEN b THEN c
COLLATE
, la colación
resultante es X
ENDX
. Lo mismo se aplica
para CASE
, UNION
,
||
, CONCAT()
,
ELT()
, GREATEST()
,
IF()
, y LEAST()
.
Para operaciones que conviertan datos de tipo carácter, el
conjunto de caracteres y colación de las cadenas de caracteres
resultantes de las operaciones se definen por las variables de
sistema character_set_connection
y
collation_connection
. Esto se aplica en
CAST()
, CHAR()
,
CONV()
, FORMAT()
,
HEX()
, y SPACE()
.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.