como combinar duas colunas em uma com o nome da coluna existente em mysql?

quero concatenar duas colunas numa tabela com um nome de coluna existente usando o mysql.

um exemplo: estou tendo uma coluna FIRSTNAME e LASTNAME e tantas colunas também. Quero concatenar estas duas colunas apenas com o nome de FIRSTNAME.

Então tentei assim:
 SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;

mas mostra os dois campos com o nome de FIRSTNAME. um campo tem valores normais e outro tem valores concatenados. Só quero uma coluna com esse valor concatenado. Eu posso selecionar colunas individuais, mas estou tendo mais de 40 colunas em minha mesa.

Existe alguma maneira de remover a coluna original usando o mysql em si?

Author: GolfWolf, 2013-11-29

3 answers

Como o aziz-shaikh salientou, não há forma de suprimir uma coluna individual da Directiva *, no entanto, você pode ser capaz de usar o seguinte hack:
SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME,
       c.*
FROM   `customer` c;

Se o fizer, fará com que a segunda ocorrência da coluna FIRSTNAME adopte o nome falso FIRSTNAME_1 para que possa endereçar com segurança a sua coluna personalizada FIRSTNAME. Você precisa alias a tabela porque * em qualquer posição que não seja no início irá falhar se não for aliada.

Espero que isso ajude!
 34
Author: Raad, 2013-11-29 12:14:31

Em vez de obter todas as colunas da tabela usando * na sua instrução sql, você usa para indicar as colunas da tabela de que necessita.

Você pode usar a declaração SQL algo como:

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

Já agora, porque não usaste o nome completo em vez do nome próprio? Assim:

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

Remova o * da sua pesquisa e use nomes individuais de colunas, como este:

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

Usando * significa que, nos seus resultados, quer todas as colunas da tabela. No seu caso * também irá incluir FIRSTNAME. Está então a concatenar algumas colunas e a usar um nome falso de FIRSTNAME. Isto cria 2 colunas com o mesmo nome.

 0
Author: Aziz Shaikh, 2013-11-29 11:21:05