utf8_bin
sortowanie jest używane do porównywania ciągów w trybie rozróżniania wielkości liter, według wartości binarnej każdego znaku. Może to zależeć od lokalnych ustawień bazy danych, który zestaw znaków lub sortowanie jest używane. Na przykład w przypadku bazy danych MySQL możesz sprawdzić tryb sortowania bazy danych MySQL za pomocą następującego polecenia MySQL
mysql> SELECT COLLATION(VERSION());
+----------------------+
| COLLATION(VERSION()) |
+----------------------+
| utf8_general_ci |
+----------------------+
..lub używając tego..
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
W twoim przypadku jedną z tych wartości powinna być utf8_bin
. Ogólne wartości bazy danych można ustawić w pliku konfiguracyjnym, prawdopodobnie my.cnf
dla MySQL. Aby utworzyć tabelę MySQL z określonym silnikiem, zestawem znaków lub sortowaniem, możesz użyć opcji migracji:
create_table :users,
:options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci'
...
Zgodnie z dokumentacją zestaw znaków tabeli i sortowanie są rozszerzeniami MySQL, nie ma takich rzeczy w standardowym SQL.