Spec-Zone .ru
спецификации, руководства, описания, API
|
The BINARY
operator casts
the string following it to a binary string. This is an easy way to force a comparison to be done byte by byte
rather than character by character. BINARY
also causes trailing spaces to be significant.
mysql>SELECT 'a' = 'A';
-> 1mysql>SELECT BINARY 'a' = 'A';
-> 0mysql>SELECT 'a' = 'a ';
-> 1mysql>SELECT BINARY 'a' = 'a ';
-> 0
BINARY
is shorthand for str
CAST(
. str
AS BINARY)
The BINARY
attribute in character column definitions has a different effect. A
character column defined with the BINARY
attribute is assigned the binary collation
of the column character set. Every character set has a binary collation. For example, the binary collation for
the latin1
character set is latin1_bin
, so if the
table default character set is latin1
, these two column definitions are equivalent:
CHAR(10) BINARYCHAR(10) CHARACTER SET latin1 COLLATE latin1_bin
The effect of BINARY
as a column attribute differs from its effect prior to MySQL
4.1. Formerly, BINARY
resulted in a column that was treated as a binary string. A
binary string is a string of bytes that has no character set or collation, which differs from a nonbinary
character string that has a binary collation. For both types of strings, comparisons are based on the numeric
values of the string unit, but for nonbinary strings the unit is the character and some character sets support
multi-byte characters. Section 11.4.2, "The BINARY
and VARBINARY
Types".
The use of CHARACTER SET binary
in the definition of a CHAR
, VARCHAR
, or TEXT
column causes the column to be treated as a binary data type. For example,
the following pairs of definitions are equivalent:
CHAR(10) CHARACTER SET binaryBINARY(10)VARCHAR(10) CHARACTER SET binaryVARBINARY(10)TEXT CHARACTER SET binaryBLOB