我希望使用mysql将具有现有列名的表中的两列连接起来。
例如:我有一个列FIRSTNAME和LASTNAME,还有这么多的列。我想将这两列连接起来,只使用FIRSTNAME的名称。
所以我就这样做了:
SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;但是它显示了两个名为FIRSTNAME的字段。一个字段具有正常值,另一个字段具有级联值。我只想要一个列与这些级联值。我可以选择单个列,但我的表中有40多个列。
是否有任何方法可以使用mysql本身删除原始列?
发布于 2013-11-29 12:14:31
正如阿齐兹谢赫所指出的,没有办法从*指令中禁止单个列,但是您可能可以使用以下黑客:
SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME,
c.*
FROM `customer` c;这样做将导致FIRSTNAME列的第二次出现采用别名FIRSTNAME_1,因此您应该能够安全地处理自定义的FIRSTNAME列。您需要对表进行别名,因为在开始时以外的任何位置上的*如果不别名,都会失败。
希望这能帮上忙!
发布于 2014-11-07 01:36:51
不是使用sql语句中的*获取所有表列,而是使用它指定所需的表列。
您可以使用SQL语句,类似于:
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS FIRSTNAME FROM customer;顺便问一下,你为什么不能用FullName而不是FirstName呢?如下所示:
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS 'CUSTOMER NAME' FROM customer;发布于 2018-10-25 13:23:03
您可以尝试使用这种简单的方式组合列:
select some_other_column,first_name || ' ' || last_name AS First_name from customer;https://stackoverflow.com/questions/20284528
复制相似问题