CONVERT()
を使用すると、異なるキャラクタセット間でデータを変換することができます。構文は以下のとおりです。
CONVERT(expr
USINGtranscoding_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
AScharacter_data_type
CHARACTER SETcharset_name
)
例:
SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8);
CAST()
woCHARACTER
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;