Skonstruowałem sobie zapytanie:
'SELECT c.name FROM '.PX.'categories as c LEFT JOIN '.PX.'categories as c2 ON c2.id = '.$cid.' LEFT JOIN '.PX.'maincat as mc ON mc.id = c2.maincat_id WHERE c.id IN (SUBSTRING_INDEX(mc.children_ids, CONCAT(",", "'.$cid.'"), 1))';
zakładając, że $cid to 5 i że wynikiem funkcji SUBSTRING_INDEX jest `1,3,4`, uproszczam zapytanie do:
'SELECT c.name FROM categories as c LEFT JOIN categories as c2 ON c2.id = 5 LEFT JOIN maincat as mc ON mc.id = c2.maincat_id WHERE c.id IN (1,3,4)';
i teraz działa, lecz jak znowu zamienię 1,3,4 na SUBSTRING_INDEX(mc.children_ids, CONCAT(",", "'.$cid.'"), 1), którego wynikiem też jest 1,3,4 to pokazuje tylko jeden rekord zamiast 3...
Pozdrawiam i z góry dziękuję!