我想使用mysql将表中的两列与现有列名连接起来.
一个例子:我有一个列FIRSTNAME
,LASTNAME
还有很多列.我想用FIRSTNAME
仅名称连接这两列.
所以我试着这样:
SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;
但它显示名称为的两个字段FIRSTNAME
.一个字段具有正常值,另一个字段具有连接值.我只想要一个具有这些连接值的列.我可以选择单列,但我的表中有超过40列.
有没有办法使用mysql本身删除原始列?
您可以使用指定所需的表列,而不是在sql语句中使用*获取所有表列.
您可以使用SQL语句:
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS FIRSTNAME FROM customer;
顺便说一句,为什么你不能使用FullName而不是FirstName?像这样:
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS 'CUSTOMER NAME' FROM customer;
正如aziz-shaikh指出的那样,没有办法从*
指令中抑制单个列,但是你可以使用以下hack:
SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME, c.* FROM `customer` c;
执行此操作将导致FIRSTNAME
列的第二次出现采用别名,FIRSTNAME_1
因此您应该能够安全地处理自定义FIRSTNAME
列.您需要对表进行别名,因为*
如果没有别名,除了在开始之外的任何位置都将失败.
希望有所帮助!