Il peut arriver que votre requête provoque ce type d’erreur lorsque vous faites une correspondance entre des identifiants alphanumériques. Voici l’exemple dans une jointure :
INNER JOIN edital_registres ON edital_registres.code = achats_registres.code
sachant que le code est de type FR, EN, DE, etc.
Selon les réglages choisis au moment de la création de la table, chez nous c’était du latin1, voici l’erreur que vous pouvez rencontrer : Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ’=’
OH MY GOD !
Il semblerait que Mysql ait un bug dès lors qu’on passe en latin1. On avait déjà pu le constater lors des exports où le latin1 pouvait être aléatoirement pris de l’UTF8.
Whatever.
Gardez votre structure de table et faites une comparaison hexadécimale avec HEX. Here it is :
INNER JOIN edital_registres ON HEX(edital_registres.code)= HEX(achats_registres.code)
Voir en ligne : RTFM