Open Source WEB

次に、cp932 と binary が混じっていた場合を簡単に試してみる。

mysql> SET NAMES cp932;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SELECT CHARSET(REPLACE('東京なんとか大学','なんとか','女子医科'));
+------------------------------------------------------------+
| CHARSET(REPLACE('東京なんとか大学','なんとか','女子医科')) |
+------------------------------------------------------------+
| cp932                                                      |
+------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> SELECT REPLACE('東京なんとか大学','なんとか',_binary'女子医科');
+----------------------------------------------------------+
| REPLACE('東京なんとか大学','なんとか',_binary'女子医科') |
+----------------------------------------------------------+
| 東京女子医科大学                                         |
+----------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> SELECT CHARSET(REPLACE('東京なんとか大学','なんとか',_binary'女子医科'));
+-------------------------------------------------------------------+
| CHARSET(REPLACE('東京なんとか大学','なんとか',_binary'女子医科')) |
+-------------------------------------------------------------------+
| binary                                                            |
+-------------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql>

さらに、utf8 と binary が混じっていた場合を簡単に試してみる。

mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SELECT CHARSET(REPLACE('東京なんとか大学','なんとか','女子医科'));
+----------------------------------------------------------------------------+
| CHARSET(REPLACE('東京なんとか大学','なんとか','女子医科')) |
+----------------------------------------------------------------------------+
| utf8                                                                       |
+----------------------------------------------------------------------------+
1 row in set (0.02 sec)
 
mysql> SELECT REPLACE('東京なんとか大学','なんとか',_binary'女子医科');
+--------------------------------------------------------------------------+
| REPLACE('東京なんとか大学','なんとか',_binary'女子医科') |
+--------------------------------------------------------------------------+
| 東京女子医科大学                                                 |
+--------------------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> SELECT CHARSET(REPLACE('東京なんとか大学','なんとか',_binary'女子医科'));
+-----------------------------------------------------------------------------------+
| CHARSET(REPLACE('東京なんとか大学','なんとか',_binary'女子医科')) |
+-----------------------------------------------------------------------------------+
| binary                                                                            |
+-----------------------------------------------------------------------------------+
1 row in set (0.00 sec)
 
mysql>

これで、

REPLACE()の3つのパラメータ文字列の1つでもbinary文字列だったら、 結果はbinaryになる

がきちんと確認されたようだ。

ところで、 結果がbinaryになるとき、いつbinaryに変換されるのだろうか。 そのタイミングが分かる方法はないだろうか?


戻る:REPLACE()で文字列の一部を置換する

次へ:REPLACE()でキャラクタセットはいつ変換されるか


フィードバック:

Name:
Comment:

There is no comment.

このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us