DBAtlas · Атлас эксплуатации баз данных

1267: Illegal mix of collations

MySQL

Что это значит?

В операции сравнения или объединения (JOIN, WHERE, UNION, CONCAT) были объединены две строки с разными правилами сортировки (collation), и MySQL не смог определить, какие правила применить.

Почему возникает?

Обычно это сравнение столбцов с разными наборами символов/collation (например, utf8mb4_general_ci и utf8mb4_unicode_ci или latin1 и utf8mb4) либо несоответствие между столбцом и collation соединения. Часто встречается, когда таблицы/базы данных создавались с разными значениями по умолчанию.

Как исправить

Приведите обе стороны сравнения к одному collation: укажите явный collation с помощью COLLATE (например, col1 = col2 COLLATE utf8mb4_unicode_ci) или используйте CONVERT(... USING ...). Для постоянного решения преобразуйте затронутые столбцы/таблицы к единому согласованному набору символов и collation. Также согласуйте collation соединения (collation_connection).

Открыть в DBAtlas →

Ещё по этой СУБД