COLLATE
Clause in Various Parts of an SQL Query
COLLATE
Clause Precedence
BINARY
Operator
The MySQL Server has a server character set and a server collation, which may not be null.
MySQL determines the server character set and server collation thus:
At this level, the decision is simple. The server character set
and collation depend on the options that you use when you start
mysqld
. You can use --default-character-set=character_set_name
for the character set, and along with it you can add
--default-collation=collation_name
for the collation. If you
don't specify a character set, that is the same as saying
--default-character-set=latin1
. If you specify only a character
set (for instance, latin1
) but not a collation, that is the same as
saying --default-charset=latin1
--collation=latin1_swedish_ci
because latin1_swedish_ci
is the default collation for latin1
.
Therefore the following three commands all have the same effect:
shell> mysqld shell> mysqld --default-character-set=latin1 shell> mysqld --default-character-set=latin1 --default-collation=latin1_swedish_ci
One way to change the settings is by recompiling. If you want to
change the default server character set and collation when building
from sources, use: --with-character-set
and --with-collation
as arguments for @command{configure}. For example:
shell> ./configure --with-character-set=latin1
or
shell> ./configure --with-character-set=latin1 --with-collation=latin1_german1_ci
Both mysqld
and configure
check that
the character set/collation combination is valid. Each program displays
an error message and terminates if the combination is not valid.