comment concatter deux colonnes en une avec le nom de colonne existant dans mysql?

je veux concaténer deux colonnes dans une table avec un nom de colonne existant en utilisant mysql.

Un exemple: j'ai une colonne FIRSTNAME et LASTNAME et donc du nombre de colonnes aussi. Je veux concaténer ces deux colonnes avec les noms de FIRSTNAME uniquement.

Donc j'ai essayé comme ceci:

 SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;

mais en affichant les deux champs avec le nom de FIRSTNAME. un champ a des valeurs normales et un autre a des valeurs concaténées. Je veux une seule colonne avec ces concaténer la valeur. Je peux choisir des colonnes simples, mais j'ai plus de 40 colonnes dans mon tableau.

y a-t-il un moyen de supprimer la colonne d'origine en utilisant mysql lui-même?

21
demandé sur GolfWolf 2013-11-29 15:18:57

3 réponses

comme aziz-shaikh l'a souligné, il n'y a aucun moyen de supprimer une colonne individuelle de la * la directive, cependant, vous pourriez être en mesure d'utiliser les éléments suivants hack:

SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME,
       c.*
FROM   `customer` c;

faire ceci causera la deuxième occurrence du FIRSTNAME colonne pour adopter l'alias FIRSTNAME_1 ainsi vous devriez être en mesure d'adresser en toute sécurité votre personnalisé FIRSTNAME colonne. Vous devez alias la table parce que * dans n'importe quelle position autre qu'au début échouera sinon alias.

j'Espère que ça aide!

34
répondu Raad 2013-11-29 12:14:31

vous pouvez utiliser la déclaration SQL quelque chose comme:

SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS FIRSTNAME FROM customer;

BTW, pourquoi ne pouvez-vous pas utiliser FullName au lieu de FirstName? Comme ceci:

SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS 'CUSTOMER NAME' FROM customer;
5
répondu Alex Alvarez 2014-11-07 02:15:51

Supprimer * à partir de votre requête et de l'utilisation des noms de colonne, comme ceci:

SELECT SOME_OTHER_COLUMN, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;

en utilisant * signifie, dans vos résultats, vous voulez toutes les colonnes de la table. Dans votre cas * inclura aussi FIRSTNAME. Vous concaténez alors quelques colonnes et utilisez alias de FIRSTNAME. Cela crée 2 colonnes avec le même nom.

0
répondu Aziz Shaikh 2013-11-29 11:21:05