Saltar al contenido principal

Mezcla ilegal de intercalaciones

❌ Error

Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '='

📍 Contexto

Este error ocurre cuando MySQL intenta comparar dos cadenas que utilizan diferentes intercalaciones (por ejemplo, utf8mb4_general_ci vs. utf8mb4_unicode_ci). A menudo sucede en scripts de FiveM cuando las consultas involucran datos de jugadores (por ejemplo, matrículas, nombres, identificadores) almacenados con intercalaciones inconsistentes.

✅ Solución

Hay dos formas de solucionar esto:

  1. Unificar la intercalación de toda la base de datos (recomendado)

     ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    Esto asegura que todas las tablas y consultas utilicen la misma intercalación.

  2. Ajustar tablas o columnas específicas

    • Eliminar o modificar las tablas afectadas.
    • Modificar el esquema SQL para usar una intercalación consistente (utf8mb4_unicode_ci o utf8mb4_general_ci).
    • Recrear o migrar los datos.

ℹ️ Información Adicional

  • Siempre haz una copia de seguridad de tu base de datos antes de aplicar cambios estructurales.
  • Usar utf8mb4_unicode_ci es generalmente preferido, ya que proporciona un mejor soporte para Unicode.
  • Mezclar intercalaciones entre tablas puede llevar a errores de consulta impredecibles.
  • Para más detalles sobre las intercalaciones de MySQL, consulta la documentación de MySQL.