2017-09-01 5 views
-1
SELECT * FROM test_table WHERE name='Süleyman'; 

enter image description hereMySQLが不必要に行

結果戻る:私のクエリで

を、私はname="Süleyman"を持つ行のみを返すようにしたい、しかし、MySQLは、あまりにもname="Suleyman"行を返して!
なぜこのようなことが起こり、どうすれば解決できますか?

+0

を見ることができます

SELECT * FROM test_table WHERE name='Süleyman' COLLATE utf8_bin; 

これは、照合問題のように思える試してみてください。比較は、 'ü'を' u '、通常はドイツ語以外の言語として扱う照合に従って行われます。言語/ロケールの設定を確認してください。 – jarlh

答えて

0

はあなたがここにSQLのフィドルhttp://sqlfiddle.com/#!9/508b5d/2/0

+0

このコマンドは正常に動作しますが、My Tableのオプションで使用できます。Charracter setは次のとおりです。utf8 - UTF-8ユニコードと照合utf8_general_ci? – creativedirektor

+0

実際、これらの文字セットには、クエリ実行時に特殊文字のマッピングがあります(https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html)。ただし、例外を作成するためのクエリに上記のステートメントを追加することができます。 –

+0

私はcollat​​ion utf8_binを持つすべての特定の文字列を作成する必要があります。コマンドでは必要ありません。ありがとうございました。 "ice 13" – creativedirektor

関連する問題