MySQL で REGEXP 比較を行うと、スウェーデン文字の大文字バージョンで奇妙な結果が得られます。私は utf8_swedish_ci 照合順序を使用しており、大文字の単語を見つけたいと思っています。
SELECT 'Öster' REGEXP BINARY '^[A-ZÅÄÖ][a-zåäö]+$'
1 を返すSELECT 'öster' REGEXP BINARY '^[A-ZÅÄÖ][a-zåäö]+$'
必要があり、0 を返す必要がありますが、逆の結果が得られます。
SELECT 'Öster' REGEXP BINARY '^[A-ZÅÄÖ][a-zåäö]+$' # returns 0 (incorrect)
SELECT 'öster' REGEXP BINARY '^[A-ZÅÄÖ][a-zåäö]+$' # returns 1 (incorrect)
SELECT 'Söder' REGEXP BINARY '^[A-ZÅÄÖ][a-zåäö]+$' # returns 1 (correct)
SELECT 'söder' REGEXP BINARY '^[A-ZÅÄÖ][a-zåäö]+$' # returns 0 (correct)
REGEXP BINARY の代わりに REGEXP を使用すると、'söder' も一致します (これは私が望むものではありません) が、それでも 'Öster' は一致しません。
これについてどうすればよいですか?