264 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
5.6.4 Die Zeichen-Definitions-Arrays
to_lower[] und to_upper[] sind einfache Arrays, die die Buchstaben in Klein- und
Großschreibung enthalten, die jedem Mitglied des Zeichensatzes entsprechen. Beispiel:
to_lower[’A’] enth¨alt ’a’
to_upper[’a’] enth¨alt ’A’
sort_order[] ist eine Map, die anzeigt, wie Buchstaben f¨ur Vergleichs- und Sortierzwecke
geordnet werden sollten. Bei vielen Zeichens¨atzen ist das dasselbe wie to_upper[] (was
bedeutet, dass das Sortieren ohne Ber¨ucksichtigung der Groß-/Kleinschreibung erfolgt).
MySQL sortiert Buchstaben auf der Grundlage des Wertes von sort_order[character].
Wegen komplizierterer Sortierregeln sehen Sie die Er¨orterung zu Zeichenketten-Vergleichen
unten an Siehe Abschnitt 5.6.5 [String collating], Seite 264.
ctype[] ist ein Array von Bit-Werten, mit einem Element pro Zeichen. (Beachten
Sie, dass to_lower[], to_upper[] und sort_order[] durch den Buchstabenwert
indiziert werden, aber ctype[] durch den Buchstabenwert + 1. Das ist aus Gr¨unden der
Abw¨artskompatibilit¨at notwendig, um EOF (Dateiende) handhaben zu k¨onnen.)
Sie finden folgenden Bitmasken-Definitionen in ‘m_ctype.h’:
#define _U 01 /* Großschreibung */
#define _L 02 /* Kleinschreibung */
#define _N 04 /* Numerisch (Ziffer) */
#define _S 010 /* Leerzeichen */
#define _P 020 /* Punkt */
#define _C 040 /* Steuerungszeichen (Control) */
#define _B 0100 /* leer */
#define _X 0200 /* heXadezimale Ziffer */
Der ctype[]-Eintrag f¨ur jeden Buchstaben sollte die Vereinigungsmenge der betreffenden
Bitmasken-Werte sein, die den Buchstaben beschreiben. ’A’ beispielsweise ist Buchstabe
in Großschreibung (_U) und gleichzeitig eine hexadezimale Ziffer (_X), daher sollte
ctype[’A’+1] folgenden Wert erhalten:
_U + _X = 01 + 0200 = 0201
5.6.5 Unterst¨utzung f¨ur Zeichenketten-Vergleich
Wenn die Sortierregeln Ihrer Sprache zu komplex sind, um durch die einfache sort_
order[]-Tabelle gehandhabt zu werden, m¨ussen Sie die Zeichenketten-Vergleichsfunktionen
benutzen.
Zum jetzigen Zeitpunkt ist die beste Dokumentation hier¨uber die Zeichens¨atze, die bereits
implementiert sind. Sehen Sie sich als Beispiele die Zeichens¨atze big5, tschechisch, gbk, sjis
und tis160 an.
Sie m¨ussen den strxfrm_multiply_MEINSET=N-Wert mit einem speziellen Kommentar am
Anfang der Datei festlegen. N sollte auf das h¨ochste Verh¨altnis gesetzt werden, auf das
die Zeichenketten w¨ahrend my_strxfrm_MEINSET anwachsen k¨onnen (es muss eine positive
Ganzzahl sein).
Kommentare zu diesen Handbüchern