Anda dapat menggunakan solusi ini:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
Namun, Anda harus benar-benar menormalkan desain Anda dan menggunakan tabel referensi silang antara posting dan gambar. Ini akan menjadi cara terbaik dan paling efisien untuk merepresentasikan hubungan N:M (banyak ke banyak). Tidak hanya itu jauh lebih efisien untuk pengambilan, tetapi akan sangat menyederhanakan pembaruan dan menghapus asosiasi gambar.
Bahkan jika Anda merepresentasikan hubungan N:M dengan benar dengan tabel referensi silang, Anda masih bisa mendapatkan imageid
dalam format CSV:
Misalkan Anda memiliki posts_has_images
tabel dengan bidang kunci utama (postid
, imageid
):
Anda dapat menggunakan GROUP_CONCAT()
untuk mendapatkan CSV dari imageid
's untuk setiap postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid