Server System Variable "character_set_results" の意味とnull値設定について
http://dev.mysql.com/doc/mysql/en/charset-connection.html
サーバ側にはある文字コードでデータがテーブルに格納されているが,クライアントにデータを返す際に別の文字コードに変換して(Unicodeをはさんだ変換)から返して欲しい場合,この変数を設定する.
If you do not want the server to perform any conversion, set character_set_results to NULL:
mysql> SET character_set_results = NULL;
SET NAMES = 文字コード,をするとその文字コードがこの変数にも設定される.サーバ側に変換をしないでそのままデータを返して欲しい場合には,NULLを設定する.
例えばConnector/J側で以下のように設定していた際,cp932→ucs2→cp932と無駄な変換をしないように動いてくれるのかは未調査.
props.put("characterEncoding", "WINDOWS-31J"); props.put("characterSetResults", "WINDOWS-31J");
サーバ変数character_set_resultsおよびConnector/JプロパティcharacterSetResultは通常はあまり使用されないと思われる.
しかし,バグはバグなので直すだけ直しておかないと・・.
PS.
cp932→ucs2→cp932のようなパターンは変換しないようになっていると以前聞いたような気も・・・.正確な情報お持ちの方いましたらご一報を・・.