Question
I am trying to use concat_ws inside a group_concat command. With a query, which simplified looks like:
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
I get the attachments column as a Blob type. is it it possible to get it as a string instead of Blob?
Solution
You need to cast as a char..
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
OTHER TIPS
Although I suspect CAST is the appropriate answer, it's worth mentioning that I ran into a similar thing in the past which turned out to be down to a strange/conflicting collation type and character set.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow