CONVERT() обеспечивает способ преобразовать данные между различными наборами символов. Синтаксис:
CONVERT(expr USING transcoding_name)
В MySQL имена перекодировки такие же, как соответствующие имена наборов символов.
Примеры:
SELECT CONVERT(_latin1'M├╝ller' USING utf8);
INSERT INTO utf8table (utf8column)
SELECT CONVERT(latin1field USING utf8) FROM latin1table;
CONVERT(… USING …) выполнено согласно стандарту SQL.
Вы можете также использовать CAST(), чтобы преобразовать строку в иной набор символов. Синтаксис:
CAST(character_string AS
character_data_type
CHARACTER SET charset_name)
Пример:
SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8);
Если Вы используете CAST() без того, чтобы определить CHARACTER SET, возникающие в результате набор символов и объединение определены переменными системы character_set_connection и collation_connection. Если Вы используете CAST() с CHARACTER SET X, возникающие в результате набор символов и объединение X и заданное по умолчанию объединение для X.
Вы не можете использовать предложение COLLATE внутри CAST(), но Вы можете использовать это снаружи. То есть CAST(… COLLATE …) запрещено, но CAST(…) COLLATE … допустимо.
Пример:
SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;