instr ejemplos mysql string

ejemplos - mysql uppercase



MySQL-length() versus char_length() (2)

varchar (10) almacenará 10 caracteres, que pueden ser más de 10 bytes. En los índices, asignará la longitud máxima del campo, por lo que si está utilizando UTF8-mb4, asignará 40 bytes para el campo de 10 caracteres.

¿Cuál es la diferencia principal entre length() y char_length() ?

Creo que tiene algo que ver con cadenas binarias y no binarias. ¿Hay alguna razón práctica para almacenar cadenas como binarias?

mysql> select length(''MySQL''), char_length(''MySQL''); +-----------------+----------------------+ | length(''MySQL'') | char_length(''MySQL'') | +-----------------+----------------------+ | 5 | 5 | +-----------------+----------------------+ 1 row in set (0.01 sec)


LENGTH() devuelve la longitud de la cadena medida en bytes .
CHAR_LENGTH() devuelve la longitud de la cadena medida en caracteres .

Esto es especialmente relevante para Unicode, en el que la mayoría de los caracteres están codificados en dos bytes. O UTF-8, donde varía el número de bytes. Por ejemplo:

select length(_utf8 ''€''), char_length(_utf8 ''€'') --> 3, 1

Como puede ver, el signo del euro ocupa 3 bytes (está codificado como 0xE282AC en UTF-8) aunque solo 0xE282AC un carácter.