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;
这有效,但只打印出该列。我如何让它打印所有列,同时仍将 $ 符号添加到成本列?
【问题讨论】:
实际上 AFAIKSELECT *, 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