Mélange illégal de collations
❌ Erreur
Mélange illégal de collations (utf8mb4_general_ci,IMPLICIT) et (utf8mb4_unicode_ci,IMPLICIT) pour l'opération '='
📍 Contexte
Cette erreur se produit lorsque MySQL essaie de comparer deux chaînes qui utilisent des collations différentes (par exemple, utf8mb4_general_ci
contre utf8mb4_unicode_ci
). Cela se produit souvent dans les scripts FiveM lorsque les requêtes impliquent des données de joueur (par exemple, plaques, noms, identifiants) stockées avec des collations incohérentes.
✅ Solution
Il existe deux façons de résoudre ce problème :
-
Unifier la collation de l'ensemble de la base de données (recommandé)
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Cela garantit que toutes les tables et requêtes utilisent la même collation.
-
Ajuster des tables ou colonnes spécifiques
- Supprimer ou modifier les tables concernées.
- Modifier le schéma SQL pour utiliser une collation cohérente (
utf8mb4_unicode_ci
ouutf8mb4_general_ci
). - Recréer ou migrer les données.
ℹ️ Informations supplémentaires
- Sauvegardez toujours votre base de données avant d'appliquer des modifications structurelles.
- L'utilisation de utf8mb4_unicode_ci est généralement préférée, car elle offre un meilleur support Unicode.
- Mélanger des collations entre les tables peut entraîner des erreurs de requête imprévisibles.
- Pour plus de détails sur les collations MySQL, consultez la documentation MySQL.