Sie können diese Lösung verwenden:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
Sie sollten Ihr Design jedoch wirklich normalisieren und eine Querverweistabelle zwischen Beiträgen und Bildern verwenden. Dies wäre die beste und effizienteste Art, N:M-Beziehungen (viele-zu-viele) darzustellen. Es ist nicht nur viel effizienter beim Abrufen, sondern es wird auch das Aktualisieren erheblich vereinfachen und Löschen Bildzuordnungen.
Selbst wenn Sie die N:M-Beziehung korrekt mit einer Querverweistabelle dargestellt haben, können Sie immer noch die imageid
erhalten im CSV-Format:
Angenommen, Sie haben einen posts_has_images
Tabelle mit Primärschlüsselfeldern (postid
, imageid
):
Sie können GROUP_CONCAT()
verwenden um eine CSV-Datei der imageid
zu erhalten 's für jede postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid