回答編集履歴
2
不正確な記述を訂正
test
CHANGED
@@ -10,7 +10,9 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
自分の環境ではcharacter_set_filesystem以外はDB/Tableのデフォルトおよび全ての文字列のカラムの文字セットはutf8
|
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
内容加筆・修正
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
|
+
|