Чувствительность к регистру или нечувствительность основана на сопоставлении строк, определенных для ваших столбцов. В MySQL по умолчанию используется сопоставление без учета регистра, поэтому все сравнения будут игнорировать регистр по умолчанию.
mysql> select case when 'city' = 'City' then 'Y' else 'N' end as matches;
+---------+
| matches |
+---------+
| Y |
+---------+
Вы можете сделать сравнение с учетом регистра, переопределив параметры сортировки:
mysql> select case when 'city' collate utf8mb4_bin = 'City' then 'Y' else 'N' end as matches;
+---------+
| matches |
+---------+
| N |
+---------+
Вы должны выбрать параметры сортировки, которые совместимы с набором символов сравниваемой строки. Вы можете проверить, какие совместимые параметры сортировки поддерживаются вашим текущим экземпляром MySQL:
mysql> SELECT * FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY
WHERE character_set_name='utf8mb4';
+------------------------+--------------------+
| COLLATION_NAME | CHARACTER_SET_NAME |
+------------------------+--------------------+
| utf8mb4_general_ci | utf8mb4 |
| utf8mb4_bin | utf8mb4 |
| utf8mb4_unicode_ci | utf8mb4 |
| utf8mb4_icelandic_ci | utf8mb4 |
. . .
Все параметры сортировки, заканчивающиеся _ci
, чувствительны к регистру в . Единственный указанный выше регистрозависимый вариант utf8mb4_bin
.
Аналогично для utf8:
mysql> SELECT * FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY
WHERE character_set_name='utf8';
+--------------------------+--------------------+
| COLLATION_NAME | CHARACTER_SET_NAME |
+--------------------------+--------------------+
| utf8_general_ci | utf8 |
| utf8_bin | utf8 |
| utf8_unicode_ci | utf8 |
| utf8_icelandic_ci | utf8 |
. . .
Выбор также зависит от используемой версии MySQL. Они продолжают вводить новые наборы символов и сопоставления, пытаясь улучшить стандарты поддержки MySQL. Например, в MySQL 8.0 вы можете использовать сопоставление utf8mb4_0900_as_cs
Прочитайте https://dev.mysql.com/doc/refman/8.0/en/case-sensitivity.html для более подробной информации.