您可以使用以下解决方案:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
但是,您应该真正规范化设计,并在帖子和图片之间使用交叉引用表。这将是表示N:M(多对多)关系的最好,最有效的方法。它不仅检索效率更高,而且将大大简化更新 和 删除 图像关联的过程。
…但是就我要添加到其中的jQuery脚本而言,逗号分隔的值更易于使用。
即使您用交叉引用表正确表示了N:M关系,您仍然可以imageid
CSV格式获取的:
假设你有一个posts_has_images
与主键字段(表postid
,imageid
):
您可以使用GROUP_CONCAT()
获得的CSV imageid
的每个postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid