Aller au contenu principal

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 :

  1. 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.

  2. 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 ou utf8mb4_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.