sql >> Databasteknik >  >> RDS >> Mysql

utf8_bin kontra utf_unicode_ci

Det beror på vad du behöver.

utf8_bin collation jämför strängar enbart baserat på deras Unicode kodpunkt värden. Om alla kodpunkter har samma värden är strängarna lika. Detta faller dock isär när du har strängar med olika sammansättning för att kombinera märken (komponerade vs. dekomponerade) eller tecken som är kanoniskt likvärdiga men inte har samma kodpunktsvärde. I vissa fall använder du utf8_bin kommer att resultera i att strängar inte matchar när du förväntar dig att de ska göra det. Teoretiskt sett utf8_bin är snabbast eftersom ingen Unicode-normalisering tillämpas på strängarna, men det kanske inte är vad du vill ha.

utf8_general_ci tillämpar Unicode-normalisering med hjälp av språkspecifika regler och jämför strängar skiftlägesokänsligt. utf8_general_cs gör samma sak, men jämför strängar skiftlägeskänsligt.



  1. ORDER BY-objekt måste visas i urvalslistan om satsen innehåller en UNION-, INTERSECT- eller EXCEPT-operator (SQL-server)

  2. Laddar markörer från XML-fil till Google Map API

  3. JSON_MODIFY() Exempel i SQL Server (T-SQL)

  4. Byta från MySQL till Cassandra - För-/nackdelar?