[前][次][番号順一覧][スレッド一覧]

mysql:12836

From: Hirofumi Fujiwara <Hirofumi Fujiwara <fuji@xxxxxxxxxx>>
Date: Fri, 03 Mar 2006 13:32:54 +0900 (JST)
Subject: [mysql 12836] CONCAT()のキャラクタセット

藤原です

マニュアルでは、CONCAT()で文字列をつなぐとき、binaryが1つでも含まれている
と、結果の文字列はbinaryとのことですが、どうもそうはならない場合があるようです。

12.3. String Functions
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

以下のようになって、訳がわからない。

mysql> SELECT CHARSET(CONCAT(_binary'Bianry',CONVERT('abc' USING latin1)));
+--------------------------------------------------------------+
| CHARSET(CONCAT(_binary'Bianry',CONVERT('abc' USING latin1))) |
+--------------------------------------------------------------+
| latin1                                                       |
+--------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> SELECT CHARSET('漢字');
+-----------------+
| CHARSET('漢字') |
+-----------------+
| eucjpms         |
+-----------------+
1 row in set (0.00 sec)
 
mysql> SELECT CHARSET(CONCAT(_binary'Bianry','漢字'));
+-----------------------------------------+
| CHARSET(CONCAT(_binary'Bianry','漢字')) |
+-----------------------------------------+
| binary                                  |
+-----------------------------------------+
1 row in set (0.00 sec)
 
mysql> SELECT CHARSET(CONCAT(_binary'Bianry',CONVERT('漢字'USING eucjpms)));
+---------------------------------------------------------------+
| CHARSET(CONCAT(_binary'Bianry',CONVERT('漢字'USING eucjpms))) |
+---------------------------------------------------------------+
| eucjpms                                                       |
+---------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> SELECT CHARSET(CONCAT(_binary'Bianry',CONVERT('漢字'USING cp932)));
+-------------------------------------------------------------+
| CHARSET(CONCAT(_binary'Bianry',CONVERT('漢字'USING cp932))) |
+-------------------------------------------------------------+
| cp932                                                       |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> SELECT CHARSET(CONCAT(CONVERT('Bianry'USING binary),CONVERT('漢字'USING eucjpms)));
+-----------------------------------------------------------------------------+
| CHARSET(CONCAT(CONVERT('Bianry'USING binary),CONVERT('漢字'USING eucjpms))) |
+-----------------------------------------------------------------------------+
| binary                                                                      |
+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql>


はて、どうなっているんだろう???

_binary'Bianry' と CONVERT('Bianry'USING binary) は違うのでしょうか?

------------------------------------------------------------------
株式会社 タイムインターメディア       藤原 博文 fuji@xxxxxxxxxx
本社 160-0002 東京都新宿区坂町26-27 IPBビル    TEL 03-5362-9009
URL  http://www.timedia.co.jp/                    FAX 03-5362-9008
地図 http://www.timedia.co.jp/company/map/     新宿線曙橋駅徒歩5分
------------------------------------------------------------------
オープンソースWEB   http://oss.timedia.co.jp/   「MySQL日本語の旅」
------------------------------------------------------------------

[前][次][番号順一覧][スレッド一覧]