sql >> Database >  >> RDS >> Mysql

Ik krijg dubbele resultaten van mysql-query bij gebruik van internationale tekens, d.w.z. Å/Ä=A &Ö=O,

Uw "probleem" is de utf8_unicode_ci sortering. Die sortering doet "tekenuitbreidingen", wat betekent dat umlauts en hun basistekens als hetzelfde worden behandeld zelfs in een = vergelijking :

A = Ä
O = Ö
...

Het tweede voorbeeld op deze mySQL-handleiding legt het probleem uit:9.1.7.8. Voorbeelden van het effect van sorteren

Wat u zou moeten doen, is ofwel overschakelen naar een sortering die onderscheid maakt tussen umlaut en basisteken (bijv. utf8_general_ci of utf8_general_bin ) of schakel alleen over naar een andere sortering wanneer u de vergelijking maakt:

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

dit is duidelijk langzamer, omdat de sorteerconversie voor elk record moet worden gedaan tijdens de zoekopdracht.



  1. hoe de volledige opgeslagen procedurecode weer te geven?

  2. split trefwoorden voor post php mysql

  3. Hoe een weergave te maken in Oracle

  4. Sequentiehiaten in een tabel in Oracle vinden