mysql 连接列名

mysql concat on columns name

你好,我刚开始学习 sql,我希望使用 concat 将这些列合并为一个,但没能成功。我可以 运行 没有 concat 的代码,但是当我使用 concat 时,它会给我一个错误代码。谁能告诉我我做错了什么?

SELECT CONCAT('A purchase with the purchase ID of' AS "Constraint",
ONLINEPURCHASE.PurchaseID AS "OLID", 'is an online purchase of type' AS "Condition", ONLINEPURCHASE.OnlineType AS "OLType", 'and also a walkin purchase of location' AS "Condition", WALKINPURCHASE.ShopLocation AS "ShopLocation") 
FROM ONLINEPURCHASE JOIN WALKINPURCHASE
    ON ONLINEPURCHASE.PurchaseID = WALKINPURCHASE.PurchaseID
WHERE WALKINPURCHASE.PurchaseID IN (SELECT PurchaseID
        FROM WALKINPURCHASE);

但是遇到这个错误(错误 1583 (42000):调用本机函数时参数不正确 'concat')

恭喜你开始学习SQL,超级好用!让我试着消除​​你的误解。

CONCAT 函数采用一定数量的字符串或列值并将它们连接在一起。无需在其中使用 AS 关键字。

以下是我认为您正在寻找的内容:

SELECT
  CONCAT(
    'A purchase with the purchase ID of',
    ONLINEPURCHASE.PurchaseID,
    'is an online purchase of type',
    ONLINEPURCHASE.OnlineType,
    'and also a walkin purchase of location',
    WALKINPURCHASE.ShopLocation
  ) AS result
FROM ONLINEPURCHASE JOIN WALKINPURCHASE
  ON ONLINEPURCHASE.PurchaseID = WALKINPURCHASE.PurchaseID
WHERE WALKINPURCHASE.PurchaseID IN
  (SELECT PurchaseID FROM WALKINPURCHASE);

这将创建您在 CONCAT 语句中构建的句子,并 return 它作为结果集中的一个列。 (我使用 AS 关键字重命名了您构建的列。)

如果您对此有任何疑问,请告诉我。