FIND_IN_SET()
kan bara användas för att söka efter ett enstaka värde i en kommaseparerad lista, det fungerar inte med två listor.
Du måste anropa det separat för varje värde.
SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)
Det skulle vara bättre om du normaliserade ditt schema istället för att använda kommaseparerade listor. Om du skapar en många-till-många-tabell med kategori-ID:n kan du göra:
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)