このソリューションを使用できます:
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(多対多)関係を表すための最良かつ最も効率的な方法です。検索がはるかに効率的であるだけでなく、更新が大幅に簡素化されます。 および削除 画像の関連付け。
相互参照テーブルを使用してN:M関係を適切に表現した場合でも、imageid
を取得できます。 CSV形式の:
posts_has_images
があるとします。 主キーフィールド(postid
)を含むテーブル 、imageid
):
GROUP_CONCAT()
を使用できます imageid
のCSVを取得するには 各postid
の :
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid