Вообще как вариант просто взять себе облачный серв

Вообще как вариант просто взять себе облачный сервер и настроить на нем мускул под свои нужды, включая увеличение длины строки для concat-функций. Но можно просто в цикле для всех магазинов наджоинить таблицу с формированием полей по маске, чтобы на выходе обработать полученные данные и набить в конечный запрос. А можно и вовсе составить запрос так, чтобы на каждый продукт получилось N-число записей, в каждой из которых будет ID магазина, кол-во и т.п. Типа так: select product_id, shop_id, count(*) as total from products p inner join shop_products sp on sp.product_id = p.id inner join shops s on sp.shop_id = s group by product_id, shop_id И полученные данные уже обрабатываете в цикле, набивая конечный массив, так же как у нас TV-шки набиваются.