FIND_IN_SET()
kann nur verwendet werden, um nach einem einzelnen Wert in einer kommaseparierten Liste zu suchen, es funktioniert nicht mit zwei Listen.
Sie müssen es für jeden Wert separat aufrufen.
SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)
Es wäre besser, wenn Sie Ihr Schema normalisieren, anstatt kommagetrennte Listen zu verwenden. Wenn Sie eine Viele-zu-Viele-Tabelle mit den Kategorie-IDs erstellen, könnten Sie Folgendes tun:
SELECT t1.*
FROM tablename AS t1
JOIN item_categories AS c ON t1.id = c.table_id
WHERE c.category_id IN (12, 13, 15)