Du kan använda den här lösningen:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
Du bör dock verkligen normalisera din design och använda en korsreferenstabell mellan inlägg och bilder. Detta skulle vara det bästa och mest effektiva sättet att representera N:M (många-till-många) relationer. Det är inte bara mycket effektivare för hämtning, utan det kommer avsevärt att förenkla uppdatering och ta bort bildassociationer.
Även om du korrekt representerade N:M-relationen med en korsreferenstabell, kan du fortfarande få imageid
är i CSV-format:
Anta att du har en posts_has_images
tabell med primärnyckelfält (postid
, imageid
):
Du kan använda GROUP_CONCAT()
för att få en CSV av imageid
s för varje postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid