首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将两个列连接成一个具有mysql中现有列名的列?

如何将两个列连接成一个具有mysql中现有列名的列?
EN

Stack Overflow用户
提问于 2013-11-29 11:18:57
回答 6查看 680.4K关注 0票数 106

我希望使用mysql将具有现有列名的表中的两列连接起来。

例如:我有一个列FIRSTNAMELASTNAME,还有这么多的列。我想将这两列连接起来,只使用FIRSTNAME的名称。

所以我就这样做了:

代码语言:javascript
复制
 SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;

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

是否有任何方法可以使用mysql本身删除原始列?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-11-29 12:14:31

正如阿齐兹谢赫所指出的,没有办法从*指令中禁止单个列,但是您可能可以使用以下黑客:

代码语言:javascript
复制
SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME,
       c.*
FROM   `customer` c;

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

希望这能帮上忙!

票数 130
EN

Stack Overflow用户

发布于 2014-11-07 01:36:51

不是使用sql语句中的*获取所有表列,而是使用它指定所需的表列。

您可以使用SQL语句,类似于:

代码语言:javascript
复制
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS FIRSTNAME FROM customer;

顺便问一下,你为什么不能用FullName而不是FirstName呢?如下所示:

代码语言:javascript
复制
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS 'CUSTOMER NAME' FROM customer;
票数 23
EN

Stack Overflow用户

发布于 2018-10-25 13:23:03

您可以尝试使用这种简单的方式组合列:

代码语言:javascript
复制
select some_other_column,first_name || ' ' || last_name AS First_name from customer;
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20284528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档