Я бы использовал запрос UNION
, чтобы выбрать 3 продукта премиум-класса, а затем остальные:
SELECT *
FROM ((SELECT 1 AS premium, posts.*
FROM posts
WHERE `posts.category` LIKE 'premium'
ORDER BY post_date_desc
LIMIT 3)
UNION
(SELECT 0 AS premium, posts.*
FROM posts)
) p
GROUP BY p.ID
ORDER BY premium DESC, `p.post_date` DESC
UNION
по умолчанию удаляет дубликаты, поэтому это предотвратит повторение того же поста в списке. [ 114]
См.:
Несколько языков в приложении MVC ASP.NET
и
Многоязычные веб-сайты с ASP.NET MVC
на этом веб-сайте.