CONVERT()
and CAST()
CONVERT()
provides a way to convert data between different character sets. The syntax is:
CONVERT(expr
USINGtranscoding_name
)
In MySQL, transcoding names are the same as the corresponding character set names.
Examples:
SELECT CONVERT(_latin1'Müller' USING utf8); INSERT INTO utf8table (utf8column) SELECT CONVERT(latin1field USING utf8) FROM latin1table;
CONVERT(... USING ...)
is implemented according to the standard SQL specification.
You may also use CAST()
to convert a string to a different character set. The syntax is:
CAST(character_string
AScharacter_data_type
CHARACTER SETcharset_name
)
Example:
SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8);
If you use CAST()
without specifying CHARACTER SET
, the resulting character set and collation are defined by the character_set_connection
and collation_connection
system variables. If you use CAST()
with CHARACTER SET X
, the resulting character set and collation are X
and the default collation of X
.
You may not use a COLLATE
clause inside a CONVERT()
or CAST()
call, but you may use it outside. For example, CAST(... COLLATE ...)
is illegal, but CAST(...) COLLATE ...
is legal: