Вопрос
Я пытаюсь использовать concat_ws внутри команды group_concat. С запросом, который упрощенно выглядит так:
SELECT item.title, GROUP_CONCAT( CONCAT_WS( ',', attachments.id, attachments.type, attachments.name ) ) as attachments
FROM story AS item
LEFT OUTER JOIN story_attachment AS attachments ON item.id = attachments.item_id
GROUP BY item.id
Я получаю столбец вложений в виде типа Blob. возможно ли получить его как строку вместо Blob?
Решение
Вам нужно разыграть как персонажа.
SELECT item.title, GROUP_CONCAT( CAST(CONCAT_WS(',', attachments.id,
attachments.type, attachments.name ) as CHAR ) ) as attachments
FROM story AS item
LEFT OUTER JOIN story_attachment AS attachments
ON item.id = attachments.item_id GROUP BY item.id
Другие советы
Хотя я подозреваю, что CAST является подходящим ответом, стоит упомянуть, что в прошлом я сталкивался с подобной вещью, которая оказалась из-за странного / противоречивого типа сопоставления и набора символов.
Не связан с StackOverflow