mysql - 如何将两列与mysql中的现有列名合并为一?

我想使用 mysql 将表中的两列与现有列名连接起来。

一个例子:我有一个列 FIRSTNAMELASTNAME 以及很多列。我只想将这两列与 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/

相关文章:

php - 在 Android 上运行 AMP (apache mysql php)

mysql - 如何在 CentOS7 上更改 MySQL root 帐户密码?

mysql - 将 MySQL 数据库置于版本控制之下?

mysql - 我应该只坚持使用 AWS RDS 自动备份还是数据库快照?

mysql - 何时在 mysql 中使用 TEXT 而不是 VARCHAR

mysql - 如何在 MySQL 中获得减去 6 周的时间戳?

php - 基于信誉实现权限

mysql - 如果需要太长时间,如何停止 MySQL 查询?

sql - 在子查询中引用外部查询的表

mysql - 为 mysql/模糊搜索实现 Levenshtein 距离?