sql >> Databáze >  >> RDS >> Mysql

Při použití mezinárodních znaků dostávám duální výsledky z dotazu mysql, tj. Å/Ä=A &Ö=O,

Váš "problém" je utf8_unicode_ci řazení. Toto řazení provádí „rozšíření znaků“, což znamená, že přehlásky a jejich základní znaky jsou považovány za stejné i v = srovnání :

A = Ä
O = Ö
...

Druhý příklad na této manuálové stránce mySQL vysvětluje problém:9.1.7.8. Příklady efektu řazení

Co byste museli udělat, je buď přepnout na řazení, které rozlišuje mezi přehláskou a základním znakem (např. utf8_general_ci nebo utf8_general_bin ) nebo přepněte na jiné řazení pouze při porovnávání:

select * from users where username like 'Björn' COLLATE utf8_general_ci;

to je samozřejmě pomalejší, protože převod řazení musí být proveden pro každý záznam během dotazu.



  1. Analýza tlaku paměti Rizikový stav

  2. Jak získat jeden sloupec výsledků mysql_query do pole?

  3. Pomocí indexu, pomocí dočasných, pomocí řazení souborů - jak to opravit?

  4. jak vybrat počet z hlavního dotazu do poddotazu