Есть таблица MySql c 20 000+ записями
id | date | name | cash
----------------------------
1 | 2014-02-05 | Ivan | 140
2 | 2014-02-05 | Kate | 130
3 | 2014-02-05 | Sasha | 14
4 | 2014-02-05 | Sveta | 140
5 | 2014-02-05 | Nina | 140
6 | 2014-02-05 | Jenya | 140
7 | 2015-01-05 | Ivan | 140
8 | 2015-01-05 | Sveta | 140
9 | 2015-06-15 | Kate | 140
10| 2015-07-20 | Kate | 4
Нужно сделать для реализации пагинации выборку записей с определенным шагом по дате.
Например:
$count = 2;// Количество записей на странице
$page = 1; // Узнаём номер страницы
$shift = $count * ($page - 1); // Смещение в LIMIT. Те записи, порядковый номер которого больше этого числа, будут выводиться.
$startDate = '2014-02-01';
$endDate = '2015-06-02';
SELECT `date`, `name`, `cash` FROM `stats` WHERE `date` BETWEEN $startDate AND $endDate ORDER BY `date` ASC LIMIT $shift, $count
вернет только две записи из таблицы, а нужно чтобы лимит учитывал только уникальные значения, не учитывая повторяющиеся. Т.е., грубо говоря, чтобы LIMIT 0,2 вернул что-то вроде
1 | 2014-02-05 | Ivan | 140
2 | 2014-02-05 | Kate | 130
3 | 2014-02-05 | Sasha | 14
4 | 2014-02-05 | Sveta | 140
5 | 2014-02-05 | Nina | 140
6 | 2014-02-05 | Jenya | 140
7 | 2015-01-05 | Ivan | 140
8 | 2015-01-05 | Sveta | 140
PS Т.е. нужно вывести все записи за $count дней со сдвигом $shift дней