Неожиданные значения (добавляемые значения) к столбцу / выводу, сгенерированному / неправильно отформатированному из SQL - PullRequest
0 голосов
/ 24 марта 2019
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
;

Над таблицей у меня есть.

Меня просят:

Перечислить детали пакета в формате FlatpackName (Тип) -UnitPrice с заголовком «Пакет».

Для этого я использовал:

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

Однако, несмотря на то, что запрос выполняется без ошибок, я получаю только один вывод:

76
76
16
32.2
48.2
68.2
129
26
26
26
226

Вот изображение примера данных, которые я заполнил в своей таблице.

https://imgur.com/a/QYFqsL1

Таким образом, может показаться, что мой запрос возвратил только единичные цены,а затем добавить к существующим значениям (я не знаю, почему это произошло).

Как я могу гарантировать, что я могу правильно отформатировать и вывести данные?

1 Ответ

1 голос
/ 24 марта 2019

Вы используете + для строк. .. не имеет смысла добавлять их. При этом начальные цифры превращаются в число, поэтому 'FlatpackName' становится 0.

Вы хотите вместо этого запятые:

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