Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como fazer o MySQL lidar com strings como o SQLite, em relação ao Unicode e ao agrupamento?


MySQL quer converter strings ao fazer INSERT e SELECT . A conversão é entre o que você declara o cliente ter e o que a coluna é declarado como armazenado.

A única maneira de evitar isso é com VARBINARY e BLOB em vez de VARCHAR e TEXT .

O uso de COLLATION utf8mb4_bin não evita a conversão de/para CHARACTER SET utf8mb4; apenas diz que WHERE e ORDER BY deve comparar os bits em vez de lidar com acentos e dobras de caixa.

Tenha em mente que CHARACTER SET utf8mb4 é uma maneira de codificar texto; COLLATION utf8mb4_* é regras para comparar textos nessa codificação. _bin é simplório.

UNIQUE envolve comparar por igualdade, portanto COLLATION . Na maioria dos agrupamentos utf8mb4, os 3 (sem espaços) serão comparados iguais. utf8mb4_bin tratará os 3 como diferentes. utf8mb4_hungarian_ci trata um=Um>one.

Os espaços à direita são controlados pelo tipo de dados da coluna (VARCHAR ou outro). A versão mais recente ainda tem uma configuração relacionada à consideração de espaços à direita.