Illegal mix of collations
❌ Błąd
Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '='
📍 Kontekst
Ten błąd występuje, gdy MySQL próbuje porównać dwa ciągi, które używają różnych porównań (na przykład utf8mb4_general_ci
vs. utf8mb4_unicode_ci
). Często zdarza się to w skryptach FiveM, gdy zapytania dotyczą danych graczy (np. tablice rejestracyjne, imiona, identyfikatory) przechowywanych z niespójnymi porównaniami.
✅ Rozwiązanie
Istnieją dwa sposoby na naprawienie tego:
-
Ujednolicenie porównania całej bazy danych (zalecane)
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
To zapewnia, że wszystkie tabele i zapytania używają tego samego porównania.
-
Dostosowanie konkretnych tabel lub kolumn
- Usuń lub zmień dotknięte tabele.
- Zmodyfikuj schemat SQL, aby używał spójnego porównania (
utf8mb4_unicode_ci
lubutf8mb4_general_ci
). - Odtwórz lub przenieś dane.
ℹ️ Dodatkowe informacje
- Zawsze wykonuj kopię zapasową bazy danych przed wprowadzeniem zmian strukturalnych.
- Używanie utf8mb4_unicode_ci jest ogólnie preferowane, ponieważ zapewnia lepsze wsparcie dla Unicode.
- Mieszanie porównań w różnych tabelach może prowadzić do nieprzewidywalnych błędów zapytań.
- Aby uzyskać więcej informacji na temat porównań MySQL, zapoznaj się z dokumentacją MySQL.