Una stringa in MySQL ha un set di caratteri e un confronto . Utf8 è un set di caratteri e utf8_bin è una delle sue regole di confronto. Le regole di confronto determinano il modo in cui MySQL confronta le stringhe.
Ad esempio, ecco due modi per confrontare una stringa UTF8:
select case when 'test' = 'TEST' collate utf8_bin
then 'true' else 'false' end,
case when 'test' = 'TEST' collate utf8_roman_ci
then 'true' else 'false' end
Il primo usa le regole di confronto utf8_bin, che fa distinzione tra maiuscole e minuscole. Il secondo usa utf8_roman_ci, che non fa distinzione tra maiuscole e minuscole.
È possibile trovare un elenco di tutti i set di caratteri e le regole di confronto con:
show character set
show collation
latin1_swedish_ci
è il confronto predefinito (MySQL è stato originariamente sviluppato in Svezia), questo vale anche per MariaDB.