2

MySQLを文字マッチングでより厳密にするにはどうすればよいですか?

私が言っていることの簡単な例は、単一の列`name`を持つテーブルがあるとしましょう。この列には、「Jorge」と「Jorgé」の2つの名前があります。これらの名前の唯一の違いは、eに対する「」です。クエリを実行すると、次のSELECT * FROM table WHERE name = 'Jorge'ようになります。

+--------+
|  name  |
+--------+
| Jorge  |
| Jorgé  |
+--------+

クエリを実行するとSELECT * FROM table WHERE name = 'Jorgé'、同じ結果テーブルが返されます。両方の名前を返さないように、MySQLをより厳密に設定するにはどうすればよいですか?

よろしくお願いします。

クイック編集:UTF-8文字エンコードを使用しています

4

2 に答える 2

2

類似の文字(eおよびなどé)が同じと見なされないようにする場合は、utf8_binその列で照合を使用する必要があります。私はあなたがutf8_general_ci今使っていると思います、それはいくつかの類似したキャラクターが同じであるとみなします。 utf8_binまったく同じ文字にのみ一致します。

于 2012-10-24T18:24:40.117 に答える
1

@ G-ナゲットは正しいですが、スペイン語のものを見ているので、utf8_spanish_ciまたはutf8_spanish2_ciにも興味があるかもしれません。それらは現代および伝統的なスペイン語に対応しています。「ñ」は別の文字と見なされ、従来の「ch」と「ll」も別の文字として扱われます。

詳細はこちら:http ://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

于 2012-10-24T18:33:28.257 に答える