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
XX.
Si hay un COLLATE
y XCOLLATE
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.
