utf8_bin
特徴
完全一致のみ
- utf8…文字コードは UTF8 で判断しますよ!
- bin…バイナリ判定(大文字と小文字は違う文字ですよ!全角と半角も違う文字ですよ!)
utf8_general_ci
特徴
拡張をサポートしない。
- utf8…文字コードは UTF8 で判断する
- general…大文字と小文字を同じ文字として扱い、全角と半角も区別する
- ci…Case Insensitive(大文字と小文字を識別しませんよ!)
utf8_unicode_ci
特徴
拡張をサポートする。
半角カタカナ=>全角カタカナやひらがな=>カタカナのマッチングが可能。
- utf8…文字コードは UTF8 で判断する
- unicode…大文字と小文字を同じ文字として扱い、全角と半角は区別しない
- ci…Case Insensitive(大文字と小文字を識別しませんよ!)
濁音、半濁音、ひらがな、カタカナも区別しない。
「は」で検索すると「は」「ば」「ぱ」「ハ」「バ」「パ」「ハ」がヒットする。
utf8_unicode_ciのデメリット
日本語の検索で、「ひらがな」「カタカナ」が混在した形でヒットしてしまう。
ひらがなの「ほ」で条件を指定したのに、「ぼ」や「ボ」や「ホ」といったものに一致してしまう。
余談
select時だけ照合順序を区別する方法
SELECTする時に条件として大文字小文字を区別したいのであれば、BINARYオペレータを記述する方法もあります。
1 | SELECT * FROM fish WHERE BINARY name = ‘KATSUO’ |