Der Operator BINARY
wandelt den ihm
nachfolgenden String in einen Binär-String um. Dies ist eine
einfache Möglichkeit, einen Spaltenvergleich byte- statt
zeichenweise durchzuführen. BINARY
berücksichtigt auch am Ende stehende Leerzeichen.
mysql>SELECT 'a' = 'A';
-> 1 mysql>SELECT BINARY 'a' = 'A';
-> 0 mysql>SELECT 'a' = 'a ';
-> 1 mysql>SELECT BINARY 'a' = 'a ';
-> 0
BINARY
ist
eine Abkürzung für
str
CAST(
.
str
AS
BINARY)
Das Attribut BINARY
in
Zeichenspaltendefinitionen hat einen anderen Effekt. Einer
Zeichenspalte, die mit dem Attribut BINARY
definiert ist, wird die Binärsortierung des Zeichensatzes der
Spalte zugewiesen. Jeder Zeichensatz hat eine
Binärsortierfolge. So heißt etwa die Binärsortierung des
Zeichensatzes latin1
latin1_bin
. Wenn also der Standardzeichensatz
der Tabelle latin1
ist, dann sind die
folgenden beiden Definitionen äquivalent:
CHAR(10) BINARY CHAR(10) CHARACTER SET latin1 COLLATE latin1_bin
Der Effekt von BINARY
als Spaltenattribut
unterscheidet sich von dessen Wirkungsweise vor MySQL 4.1.
Ursprünglich führte BINARY
zu einer Spalte,
die als Binär-String behandelt wurde. Ein Binär-String ist ein
String aus Bytes, der weder einen Zeichensatz noch eine
Sortierfolge hat; hierin liegt der Unterschied zu einem
nichtbinären Zeichen-String, der eine Binärsortierung hat. Bei
beiden String-Typen basieren Vergleiche auf den numerischen
Werten der String-Einheit, aber bei nichtbinären Strings ist
die Einheit das Zeichen, und einige Zeichensätze unterstützen
Multibytezeichen. Siehe Abschnitt 11.4.2, „Die BINARY
- und VARBINARY
-Typen“.
Die Verwendung von CHARACTER SET binary
in
der Definition einer CHAR
-,
VARCHAR
- oder TEXT
-Spalte
bewirkt, dass diese als binärer Datentyp behandelt wird. So
sind beispielsweise die folgenden Definitionspaare gleichwertig:
CHAR(10) CHARACTER SET binary BINARY(10) VARCHAR(10) CHARACTER SET binary VARBINARY(10) TEXT CHARACTER SET binary BLOB
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.