回答編集履歴
1
追記
answer
CHANGED
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
id int primary key,
|
|
4
4
|
val1 varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci ,
|
|
5
5
|
val2 varchar(100) CHARACTER SET utf8 COLLATE utf8_bin );
|
|
6
|
+
insert into tbl values
|
|
6
|
-
|
|
7
|
+
(1,'とうこう','とうこう'),
|
|
8
|
+
(2,'どうこう','どうこう'),
|
|
9
|
+
(3,'xうこう','xうこう');
|
|
7
10
|
```
|
|
8
11
|
|
|
9
12
|
としたとき、val1はブレを吸収するので
|
|
@@ -18,4 +21,17 @@
|
|
|
18
21
|
select * from tbl where val2='とうこう';
|
|
19
22
|
select * from tbl where val2='どうこう';
|
|
20
23
|
```
|
|
21
|
-
それぞれ正確に該当するものしかヒットしません。
|
|
24
|
+
それぞれ正確に該当するものしかヒットしません。
|
|
25
|
+
|
|
26
|
+
逆に属性を無視して処理するにはstrcmpを利用してcollateを指定します
|
|
27
|
+
|
|
28
|
+
```SQL
|
|
29
|
+
select * from tbl where not STRCMP(val1 COLLATE utf8_unicode_ci,'どうこう');
|
|
30
|
+
select * from tbl where not STRCMP(val2 COLLATE utf8_unicode_ci,'どうこう');
|
|
31
|
+
```
|
|
32
|
+
※両方ヒット
|
|
33
|
+
```
|
|
34
|
+
select * from tbl where not STRCMP(val1 COLLATE utf8_bin,'どうこう');
|
|
35
|
+
select * from tbl where not STRCMP(val2 COLLATE utf8_bin,'どうこう');
|
|
36
|
+
```
|
|
37
|
+
※厳密にヒット
|