あなたの「問題」はutf8_unicode_ci
です 照合。その照合は「文字拡張」を行います。つまり、ウムラウトとその基本文字は、=
でも同じとして扱われます。 比較 :
A = Ä
O = Ö
...
このmySQLマニュアルページの2番目の例では、この問題について説明しています。9.1.7.8。照合の効果の例
ウムラウトと基本文字を区別する照合に切り替える必要があります(例:utf8_general_ci
またはutf8_general_bin
)または、比較を行う場合にのみ別の照合に切り替えます:
select * from users where username like 'Björn' COLLATE utf8_general_ci;
クエリ中にレコードごとに照合変換を実行する必要があるため、これは明らかに遅くなります。