一尘不染

如何将两列与mysql中现有的列名合并为一列?

mysql

我想使用mysql将表中的两列与现有的列名连接起来。

一个例子:我有一列FIRSTNAMELASTNAME也有很多列。我想将这两列与FIRSTNAME仅名称连接。

所以我尝试这样:

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

但它显示名称为的两个字段FIRSTNAME。一个字段具有标准值,而另一个字段具有级联值。我只希望具有这些连接值的一列。我可以选择单个列,但是表中有40多个列。

有没有办法使用mysql本身删除原始列?


阅读 254

收藏
2020-05-17

共1个答案

一尘不染

正如aziz-shaikh所指出的那样,无法从*指令中取消单个列,但是您可以使用以下技巧:

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

这样做将导致FIRSTNAME列的第二次出现采用别名,FIRSTNAME_1因此您应该能够安全地解决自定义FIRSTNAME列。您需要对表进行别名处理,因为*如果不使用别名,那么在开头以外的任何位置都将失败。

希望有帮助!

2020-05-17