MySQL在使用concat时选择所有(*)? [关闭]

Posted

技术标签:

【中文标题】MySQL在使用concat时选择所有(*)? [关闭]【英文标题】:MySQL selecting all (*) while using concat? [closed] 【发布时间】:2020-11-06 03:48:25 【问题描述】:

所以基本上我想选择该表中的所有列,同时还连接特定列。

例如(此代码显然不起作用)

select *
concat("$", Cost),
from Restaurant
Order by Cost desc;

所以基本上它会打印所有值并在 Cost 表的(十进制)值前面添加一个 $。

我知道如何自己做那个专栏并让它发挥作用,这将是

    SELECT CONCAT("$", Cost) AS Cost
    FROM Restaurant;

这有效,但只打印出该列。我如何让它打印所有列,同时仍将 $ 符号添加到成本列?

【问题讨论】:

实际上 AFAIK SELECT *, CONCAT('$', Cost) ... 应该可以正常工作。不要将$ 放在双引号中,否则 mysql 可能会认为您正在尝试引用列或其他数据库对象名称。 问题出现在*后缺少逗号 @TimBiegeleisen 我仍然收到错误“选择”对于此服务器版本在此位置无效,期待 FOR、LOCK、TABLE、VALUES、WITH、'(' 如果我尝试你们所说的 我不会将$ 放在查询结果中。只需获取该值,并在演示期间使用应用程序代码将其格式化为货币。 @BillKarwin 我可能会说你上面的评论是价格less LOL :-) 【参考方案1】:

似乎只是在您的选择中放错了逗号:

select 
    * , 
    concat("$", Cost)
from Restaurant
Order by Cost desc;

【讨论】:

以上是关于MySQL在使用concat时选择所有(*)? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 MySQL 子查询中的所有不同值选择到 group_concat 中?

使用 concat 和 filesort 时 mysql 查询慢

mysql存储过程group_concat为游标中的选择返回null

如何使用 group_concat 和左连接计算 mysql 查询的结果

多个表上的mysql group_concat

在子选择中带有 GROUP_CONCAT 的 Mysql