Ако имате две категории (както във вашия въпрос), най-лесният начин в MySQL е да използвате union all :
(select * from t_shop where category = 1 order by rand() limit 5)
union all
(select * from t_shop where category = 2 order by rand() limit 5)
Ако имате две категории (както във вашия въпрос), най-лесният начин в MySQL е да използвате union all :
(select * from t_shop where category = 1 order by rand() limit 5)
union all
(select * from t_shop where category = 2 order by rand() limit 5)