Нужно получить строки для уникальных 20 товаров.
Т.е. строки с id 1 и 2 считается как один уникальный товар, соответствено 3,4,5 - это второй уникальный товар.
Задача получить строки для 20 уникальных товаров именно mysql запросом
select a.product_id,
b.*
from (select product_id from mytable group by product_id) a
left join mytable b on b.product_id between a.product_id
and a.product_id +20
idShura, не, товары необязательно по порядку идут. Может быть 111,122,123 и т.д. Здесь лучше по уникальному значению как-то сделать.
Например,
1 строка - 111 (получили уникальный product_id, уникальных товаров 1)
2 строка - 111 (все тот же id, уникальных товаров 1)
3 строка - 112 (новый уникальный product_id, уникальных товаров 2)
4 строка - 112 (все тот же id, уникальных товаров 2)
Вот алгоритм такой. Только как его с помощью Mysql сделать вопрос
select *
from myproducts
join (
select distinct product_id
from myproducts
order by product_id
limit 20 -- количество уникальных товаров
) unique_products on unique_products.product_id = myproducts.product_id;