我想用mysql将一个表中的两列与一个已有的列名连接起来。
举个例子:我有一个列FIRSTNAME
和LASTNAME
,还有很多列,我只想用FIRSTNAME
的名字连接这两个列。
所以我试着这样:
SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;
但它显示了两个名为FIRSTNAME
的字段。一个字段具有正常值,另一个字段具有连接值。我只需要一列具有这些连接值。我可以选择单列,但我的表中有40多列。
有没有办法用mysql本身删除原来的列?
6条答案
按热度按时间falq053o1#
正如aziz-shaikh所指出的,没有办法从
*
指令中取消单个列,但是您可以使用以下方法:这样做将导致第二次出现的
FIRSTNAME
列采用别名FIRSTNAME_1
,因此您应该能够安全地寻址定制的FIRSTNAME
列。您需要为表设置别名,因为如果不设置别名,则除开头位置以外的任何位置的*
都将失败。oxf4rvwz2#
在SQL语句中不是使用 * 获取所有表列,而是使用指定所需的表列。
您可以使用类似以下的SQL语句:
顺便说一句,为什么不能用FullName代替FirstName呢?
t1rydlwq3#
您可以尝试使用以下简单方法组合列:
ma8fv8wu4#
从查询中删除
*
,并使用单独的列名,如下所示:使用
*
意味着,在结果中,您需要表的所有列。在您的情况下,*
还将包括FIRSTNAME
。然后,您将连接一些列并使用别名FIRSTNAME
。这将创建2个同名的列。oymdgrw75#
只需从select子句中删除 *,显式地提及所有列名并省略FIRSTNAME列。然后将CONCAT(FIRSTNAME,',',LASTNAME)AS FIRSTNAME写入。上面的查询将为您提供唯一的FIRSTNAME列。
hgb9j2n66#
我是一个新手,我这样做: