Illégale mélange de classements pour l'opération "concat'
Je suis en train d'exécuter ce concat requête mysql
SELECT CONCAT(if(fName,fName,''),Name)
From Student
Erreur:
#1271 - Illegal mix de classements pour l'opération "concat'
pouvez-vous décrire votre Étudiant en cours de structure de la table?
Étudiant=> id int ,Nom varchar varchar fName
Ce que les classements ne les colonnes?
avez-vous résoudre le problème?
non, je n'ai pas peut-être il a mysql bug
Étudiant=> id int ,Nom varchar varchar fName
Ce que les classements ne les colonnes?
avez-vous résoudre le problème?
non, je n'ai pas peut-être il a mysql bug
OriginalL'auteur ahmed saud | 2011-10-13
Vous devez vous connecter pour publier un commentaire.
Les jeux de caractères et/ou les classements que vous utilisez dans votre connexion ne correspond pas au jeu de caractères/classement de votre tableau.
Il y a 4 solutions:
1 - Modifier le jeu de caractères de votre connexion:
2 - Modifier le jeu de caractères utilisé dans la table pour faire correspondre le jeu de caractères du serveur:
3 - Modifier le jeu de caractères par défaut des paramètres et redémarrer MySQL
Modifier Mon.ini et remplacer le
character_set_*
options, de sorte qu'ils correspondent à vos tables.4 - Modifier le jeu de caractères paramètres de votre connexion
Vous client peut remplacer le jeu de caractères et les paramètres de classement.
Si ce n'est pas l'option 1 ou 3 devrait résoudre votre problème, mais si la connexion remplace ces paramètres, vous devez vérifier la connexion de la chaîne et de modifier le jeu de caractères/paramètres de classement pour correspondre à votre base de données.
Quelques conseils:
Trouver un jeu de caractères. Je recommande
UTF8
et un classement: je recommandeutf8_general_ci
. Et l'utilisation de ces consistantly partout.latin1 sonne comme une meilleure option pour l'ouest de bases de données.
Parfois, vous avez besoin de travailler avec des tables qui a différents classements et vous n'avez pas le pouvoir de modifier les classements de tableaux.
Si les fonctions définies par l'utilisateur sont appelés dans
concat
, il pourrait également aider àSET NAMES [your_preferred_charset];
puis déposer et de redéfinir les procédures et les fonctions.OriginalL'auteur Johan
Cela est dû à des collections de différence, vous pouvez résoudre par la conversion de deux chaînes ou des colonnes
une collection de dire UTF8
Cela va résoudre 🙂
vous pouvez vérifier plus sur le casting de MySQL ici MySQL Casting
OriginalL'auteur Anas Naguib
Une concaténation ne peut fonctionner que si le classement de toutes les valeurs d'allumettes OU vous utilisez un classement tous les classements sont un sous-ensemble de (à partir d'un point de vue logique).
Si vous voulez concaténer du texte, chaque texte doit être le même classement. Regardez le classement de la base de données utilise, puis prendre un coup d'oeil sur le classement de votre connexion utilise:
La collation_connection doit correspondre au classement de la table vous essayez de les concaténer. Si ça ne marche pas, le message d'erreur surviennent.
Vous pouvez ensuite modifier la connexion de classement pour correspondre à celui de la table.
OriginalL'auteur 0xCAFEBABE
Ressembler vous avez une miss utilisation sur le
if
déclaration, car il va résultant d'unundefined
type de données de sorte que leconcat
opération échoue car il différent dans le type de données. Essayez de modifier la requête par l'utilisationifnull
à la place.Essayer cette requête à la place:
voir la démo ici http://www.sqlize.com/kfy85j8f1e
pour une autre référence à lire aussi http://forums.mysql.com/read.php?10,225982,225982#msg-225982
OriginalL'auteur Gajahlemu
Il peut aussi être une erreur avec votre bibliothèque client d'être trop vieux pour le serveur mysql.
Nous avons eu un problème similaire avec des et le caractère "ő" et à l'aide de PHP MySQL version de bibliothèque 5.1.52 mais MySQL server version 5.5.22.
Le problème a disparu lors de la mise à niveau de la bibliothèque cliente.
mysql
cmd client?oui, maintenant obsolète ext/mysql un
Obsolète? Parlez-vous de PHP?
bien sûr, quoi d'autre? avez-vous manqué le mémo sur l'ancienne extension mysql arriver obsolète et même supprimé pour php7? ce n'est pas sur mysqli si
Je veux dire depuis quand est-ce devenu un PHP en question? Tout le monde parle ici de MySql, pas de C#, Java ou PHP.
OriginalL'auteur sztanpet
Essayer..
OriginalL'auteur Evgeny