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日本語の旅」 ------------------------------------------------------------------