データベースにテーブルがあり、次のようなクエリを実行したい
SELECT column1, column2 FROM my_table WHERE my_condition;
しかし、mysqlがutf8エンコーディングでcolumn2
を返すようにします。そのようなタスクを行うのはmysqlの関数ですか?それは何ですか?
CASTおよびCONVERTを使用して、異なるタイプのエンコーディングを切り替えることができます。参照: http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html
SELECT column1, CONVERT(column2 USING utf8)
FROM my_table
WHERE my_condition;
SELECT CONVERT(CAST(column as BINARY) USING utf8) as column FROM table
添加:
MySQLクライアントライブラリを使用する場合、接続のデフォルトの文字セットへの変換を防ぐ必要があります。 (mysql_set_character_set()
[1] を参照)
この場合、追加のバイナリへのキャストを使用します。
SELECT column1, CAST(CONVERT(column2 USING utf8) AS binary)
FROM my_table
WHERE my_condition;
それ以外の場合、SELECT
ステートメントはutf-8に変換されますが、クライアントライブラリは(潜在的に異なる)デフォルトの接続文字セットに変換します。