从 SQL 到 column/output generated/formatted 的意外值(正在添加的值)不正确

Unexpected values (values being added) to column/output generated/formatted incorrectly from SQL

CREATE TABLE `flatpack_apn` (
    `FlatpackID` INT(11) NOT NULL AUTO_INCREMENT,
    `Name` TINYTEXT NOT NULL,
    `Colour` TEXT NULL DEFAULT NULL,
    `Type` ENUM('Office','Kitchen','Bedroom','General') NOT NULL,
    `UnitPrice` DECIMAL(5,2) NULL DEFAULT NULL,
    PRIMARY KEY (`FlatpackID`)
)
COLLATE='hp8_english_ci'
ENGINE=InnoDB
AUTO_INCREMENT=12
;

以上是我的table

我被要求:

以以下格式列出扁平包详细信息:扁平包名称(类型)-单价 标题“Flatpack”。

为此,我使用了:

SELECT CONCAT ('FlatpackName'+ '('+Type+ ')' +'-'+UnitPrice) 
FROM coursework.flatpack_apn;

然而,尽管查询运行没有错误,但我得到的唯一输出是:

76
76
16
32.2
48.2
68.2
129
26
26
26
226

这是我填充 table 的示例数据的图片。

所以看起来我的查询只返回了单价,然后添加到现有值(我不知道为什么会这样)。

如何确保我能够正确格式化和输出数据?

您正在对字符串使用 +。 .. 添加它们没有意义。这样做时,前导数字会变成数字,因此 'FlatpackName' 会变成 0

您需要逗号:

SELECT CONCAT('FlatpackName', '(', Type,  ')', '-', UnitPrice)