FIND_IN_SET()
kan alleen worden gebruikt om te zoeken naar een enkele waarde in een door komma's gescheiden lijst, het werkt niet met twee lijsten.
Je moet het voor elke waarde apart aanroepen.
SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)
Het zou beter zijn als u uw schema zou normaliseren in plaats van door komma's gescheiden lijsten te gebruiken. Als u een veel-op-veel-tabel maakt met de categorie-ID's, kunt u het volgende doen:
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)