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

一个例子:我有一列 FIRSTNAMELASTNAME 以及很多列。我只想将这两列与名称 FIRSTNAME 连接起来。

所以我试过这样:

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

但它显示名称为 FIRSTNAME 的两个字段。一个字段具有正常值,另一个字段具有连接值。我只想要一列带有这些连接值的列。我可以选择单列,但我的表中有 40 多列。

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

最佳答案

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

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

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

希望有帮助!

关于mysql - 如何使用mysql中现有的列名将两列合并为一列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20284528/

10-13 08:57