Saya telah melakukan sesuatu yang mirip dengan memperlakukan daftar ID yang dipisahkan koma untuk meniru topeng bit. Triknya adalah melakukan join menggunakan like '%,id,% (dimana id adalah kunci dalam tabel yang diindeks oleh id). Untuk kasus Anda, saya menggabungkan table_1 ke tabel bilangan bulat berurutan dan hasilnya menyertakan baris untuk setiap id di kolom product_id Anda.
Saya melakukan ini sekali untuk setiap id yang Anda minta dan bergabung dengan tabel turunan yang dihasilkan untuk menemukan yang umum.
Ini pertanyaannya:
SELECT p1.id, p1.name name1,p2.name name2, GROUP_CONCAT(p1.N) similarities
FROM (
SELECT *
FROM table_1 t1
JOIN sequence8 s8 on CONCAT(',',t1.product_ids,',') LIKE CONCAT('%,',s8.N,',%')
WHERE t1.id =1
) p1
JOIN
(
SELECT *
FROM table_1 t1
JOIN sequence8 s8 ON CONCAT(',',t1.product_ids,',') LIKE CONCAT('%,',s8.N,',%')
WHERE t1.id =4
) p2 ON p2.n = p1.n
GROUP BY p1.id