Символы равны, если они определены как равные в текущем сопоставлении.
Строки имеют набор символов и определенные параметры сортировки. Если строка происходит из таблицы, таблица или столбец определяет параметры сортировки.
Если строка является литералом, который вы используете в выражении SQL (как в вашем примере), для параметров сортировки по умолчанию используется значение сеанса для параметров MySQL character_set_connection
и collation_connection
.
Вы можете переопределить значения сеанса для данного строкового литерала, используя предложение COLLATE
:
mysql> SELECT STRCMP('ī', 'i' COLLATE utf8mb4_bin);
+---------------------------------------+
| STRCMP('ī', 'i' COLLATE utf8mb4_bin) |
+---------------------------------------+
| 1 |
+---------------------------------------+
См. https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html