我想使用 mysql 将表中的两列与现有列名连接起来。
一个例子:我有一个列 FIRSTNAME
和 LASTNAME
以及很多列。我只想将这两列与 FIRSTNAME
的名称连接起来。
所以我这样尝试:
SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;
但它显示两个名称为 FIRSTNAME
的字段。一个字段具有正常值,而另一个字段具有串联值。我只想要一列具有这些连接值的列。我可以选择单列,但我的表中有超过 40 列。
有没有办法使用mysql本身删除原始列?
最佳答案
正如 aziz-shaikh 所指出的,没有办法从 *
指令中抑制单个列,但是您可以使用以下 hack:
SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME,
c.*
FROM `customer` c;
这样做会导致 FIRSTNAME
列的第二次出现采用别名 FIRSTNAME_1
,因此您应该能够安全地处理您自定义的 FIRSTNAME
栏目。您需要为表设置别名,因为如果不设置别名,则位于开头以外的任何位置的 *
都会失败。
希望有帮助!
https://stackoverflow.com/questions/20284528/