sql >> Databasteknik >  >> RDS >> Mysql

Vilken COLLATE ska jag ställa in för att använda alla möjliga språk?

  • Första val (MySQL 8.0):utf8mb4_0900_ai_ci
  • Andra val (från och med 5.6):utf8mb4_unicode_520_ci
  • Tredje val (5.5+):utf8mb4_unicode_ci
  • Före 5.5 kunde du inte hantera hela kinesiska, inte heller Emoji:utf8_unicode_ci

Siffrorna hänvisar till Unicode-standarderna 9.0, 5.20 och (inget nummer) 4.0.

Ingen sortering är bra för att sortera alla språk på samma gång. Spanska, tyska, turkiska, etc, har egenheter som är inkompatibla. Samlingarna ovan är de "bästa" generella som finns tillgängliga.

utf8mb4 hanterar alla tecken som ännu specificerats av Unicode (inklusive Cherokee, Klingon, Cuneiform, Bysantine, etc.)

Om portugisiska är i fokus:

Se https://pt.stackoverflow.com/ och MySQL-sortering för portugisiska .

Studera detta för 8.0 eller detta för pre 8.0 för att se vilken utf8/utf8mb4-kollation som kommer närmast att sortera portugisiska "rätt". Kanske utf8mb4_danish_ci eller utf8mb4_de_pb_0900_ai_ci skulle vara bäst.

(Annas gå med "valen" som anges ovan.)



  1. Kan inte trunkera tabellen eftersom den refereras av en FOREIGN KEY-begränsning?

  2. MySQL:Lägg till sekvenskolumn baserat på ett annat fält

  3. Hur får mysql att starta automatiskt? (endast linux-cli)

  4. MS Access anropar SQL Server lagrad procedur