Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


10.1.9.2 CONVERT() と CAST()

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);

CHARACTER SET を指定せずに CAST() を使用した場合、文字セットと照合順序は character_set_connection および collation_connection システム変数で定義されます。CHARACTER SET X を指定して CAST() を使用した場合、文字セットはX、照合順序は X のデフォルト照合順序になります。

CONVERT() または CAST() 呼び出し内では COLLATE 句を使用できませんが、呼び出し外では使用できます。たとえば、CAST(... COLLATE ...) は無効ですが、CAST(...) COLLATE ... は有効です。

SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;

User Comments
Sign Up Login You must be logged in to post a comment.