teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

誤記の訂正

2017/03/27 01:11

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -1,4 +1,4 @@
1
- MySQL は、**utf8_unicode_ci のテーブルでは「大文字・小文字、清音・濁音・半濁音」を区別しない仕様**だったと思います。utf8_bin であれば、区別します。
1
+ MySQL は、**utf8_general_ci のテーブルでは「大文字・小文字、清音・濁音・半濁音」を区別しない仕様**だったと思います。utf8_bin であれば、区別します。
2
2
 
3
3
  解決方法としては、テーブルを utf8_bin で作り直すか SQL 実行時に、BINARY をつけて比較することになると思います。
4
4
 

2

誤字の修正

2017/03/27 01:11

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  MySQL は、**utf8_unicode_ci のテーブルでは「大文字・小文字、清音・濁音・半濁音」を区別しない仕様**だったと思います。utf8_bin であれば、区別します。
2
2
 
3
- 解決方法としては、テーブルを utf8_bin で作り直すか SQL 実行時、BINARY で、比較するになると思います。
3
+ 解決方法としては、テーブルを utf8_bin で作り直すか SQL 実行時、BINARY をつけて比較することになると思います。
4
4
 
5
5
  WordPress の SQL を調べてみたところ、LIKE で検索していますので、この LIKE を LIKE BINARY に変更すると「大文字・小文字、清音・濁音・半濁音」を区別して検索できると思います。
6
6
 

1

追記

2017/03/27 01:09

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -1,8 +1,8 @@
1
- MySQL は、**utf8_unicode_ci のテーブルでは「清音・濁音・半濁音」を区別しない仕様**だったと思います。utf8_bin であれば、区別します。
1
+ MySQL は、**utf8_unicode_ci のテーブルでは「大文字・小文字、清音・濁音・半濁音」を区別しない仕様**だったと思います。utf8_bin であれば、区別します。
2
2
 
3
3
  解決方法としては、テーブルを utf8_bin で作り直すか SQL 実行時で、BINARY で、比較するになると思います。
4
4
 
5
- WordPress の SQL を調べてみたところ、LIKE で検索していますので、この LIKE を LIKE BINARY に変更すると「清音・濁音・半濁音」を区別して検索できると思います。
5
+ WordPress の SQL を調べてみたところ、LIKE で検索していますので、この LIKE を LIKE BINARY に変更すると「大文字・小文字、清音・濁音・半濁音」を区別して検索できると思います。
6
6
 
7
7
 
8
8
  動作確認として、上記の LIKE から LIKE BINARY への変更を WordPress のソースで、SQLを探して直接書き換えると、検索結果が変わることを確認しました。