回答編集履歴

2

不正確な記述を訂正

2016/12/28 14:10

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -10,7 +10,9 @@
10
10
 
11
11
 
12
12
 
13
- 自分の環境ではcharacter_set_filesystem以外はDB/Tableのデフォルトおよび全ての文字列のカラムの文字セットはutf8統一してあります。WorkBenchなどから以下のようにするとヒットしましたが、1行目のcharacter_set_clientをutf8以外(latin1やcp932)に変更するとヒットしなくなりました。
13
+ 自分の環境ではcharacter_set_filesystem以外はDB/Tableのデフォルト(の文字セットやcollation)および全ての文字列のカラムの文字セットはutf8(およびunicode_general_ci)に統一してあります。その環境でWorkBenchなどから以下のようにするとヒットしましたが、1行目のcharacter_set_clientをutf8以外(latin1やcp932)に変更するとヒットしませんでした。
14
+
15
+
14
16
 
15
17
  ```sql
16
18
 

1

内容加筆・修正

2016/12/28 14:09

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,14 +1,22 @@
1
+ 少し加筆・修正しました。
2
+
3
+
4
+
5
+ ---
6
+
7
+
8
+
1
9
  文字セットの問題ではないでしょうか?
2
10
 
3
- WorkBenchなどから以下を発行するとヒットすると思いますが1行目をutf8->latin1などに変更するとヒットしなくなると思います。(自前のテーブルでやってみたところヒットしませんでした)
4
11
 
5
12
 
13
+ 自分の環境ではcharacter_set_filesystem以外はDB/Tableのデフォルトおよび全ての文字列のカラムの文字セットはutf8で統一してあります。WorkBenchなどから以下のようにするとヒットしましたが、1行目のcharacter_set_clientをutf8以外(latin1やcp932)に変更するとヒットしなくなりました。
6
14
 
7
15
  ```sql
8
16
 
9
17
  set character_set_client = utf8;
10
18
 
11
- SELECT * FROM company where prefecturesID='北海道';
19
+ SELECT * FROM company where prefecturesID='北海道'; --> ヒット
12
20
 
13
21
  ```
14
22
 
@@ -23,3 +31,9 @@
23
31
 
24
32
 
25
33
  もしcharacter_set_clientなどが不適切な値になっていたなら上記の原因であるような気がします。
34
+
35
+ なお、詳細なメカニズムを把握したい場合は「MySQLの文字セットについてのマニュアルを参照」し、単純に問題を発生させないためには統一しておくのがよいのかも知れません。
36
+
37
+
38
+
39
+