Możesz użyć tego rozwiązania:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
Jednak naprawdę powinieneś znormalizować swój projekt i użyć tabeli porównawczej między postami i obrazami. Byłby to najlepszy i najskuteczniejszy sposób przedstawiania relacji N:M (wiele do wielu). Jest nie tylko znacznie wydajniejszy do wyszukiwania, ale znacznie uprości aktualizację i usuwanie skojarzenia obrazów.
Nawet jeśli poprawnie przedstawiłeś relację N:M za pomocą tabeli porównawczej, nadal możesz uzyskać imageid
jest w formacie CSV:
Załóżmy, że masz posts_has_images
tabela z polami klucza głównego (postid
, imageid
):
Możesz użyć GROUP_CONCAT()
aby uzyskać plik CSV z imageid
dla każdego postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid