46

データベースにテーブルがあり、次のようなクエリを実行したい

SELECT column1, column2 FROM my_table WHERE my_condition;

column2しかし、mysqlがutf8エンコーディングで返すようにしたい。そのようなタスクを実行するのはmysqlの関数ですか? それは何ですか?

4

4 に答える 4

73

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;
于 2013-04-17T04:21:28.097 に答える
23

添加:

MySQLクライアント ライブラリを使用する場合は、接続のデフォルトの文字セットへの変換を防止する必要があります。( mysql_set_character_set()[1]を参照)

この場合、バイナリへの追加のキャストを使用します。

SELECT column1, CAST(CONVERT(column2 USING utf8) AS binary)
FROM my_table
WHERE my_condition;

それ以外の場合、SELECTステートメントは utf-8 に変換されますが、クライアント ライブラリによって (異なる可能性がある) デフォルトの接続文字セットに変換されます。

于 2018-01-22T07:14:35.660 に答える