Czy idzie jednym zapytaniem wybrać takie rzędy, których kolumna suma(liczba) będzie wynosiła dokładnie 10 (kolejność wybierania rzędów ustalona przez ich klucz główny id)? Np. zaczynając od id=1 jak w poniższym przykładzie:
+----+--------+
| id | liczba |
+----+--------+ zaczynamy: suma(liczba) = 0
| 1 | 1 | OK suma = 1 - ten rząd trafia do wyniku, suma wzrasta
| 2 | 2 | OK suma = 1 + 2 = 3 - ten rząd trafia do wyniku, suma wzrasta
| 3 | 5 | OK suma = 3 + 5 = 8 - ten rząd trafia do wyniku, suma wzrasta
| 4 | 4 | X suma = 8 + 4 = 12 - za dużo, ten rząd nie trafia do wyniku, suma nie wzrasta
| 5 | 3 | X suma = 8 + 3 = 11 - j.w.
| 6 | 1 | OK suma = 8 + 1 = 9 - trafia do wyniku, suma wzrasta
| 7 | 4 | X suma = 9 + 4 = 13 - nie trafia, suma nie wzrasta
| 8 | 1 | OK suma = 9 + 1 = 10 - trafia do wyniku, suma = 10, to jest ostatni poszukiwany rząd, koniec
| 9 | 5 |
| 10 | 4 |
+----+--------+
Z kolei zaczynając od id = 7 do wyniku trafią 3 kolejne rzędy, ponieważ 4 + 1 + 5 = 10
DROP TABLE IF EXISTS `liczby`;
CREATE TABLE `liczby` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`liczba` int(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of liczby
-- ----------------------------
INSERT INTO `liczby` VALUES ('1', '1');
INSERT INTO `liczby` VALUES ('2', '2');
INSERT INTO `liczby` VALUES ('3', '5');
INSERT INTO `liczby` VALUES ('4', '4');
INSERT INTO `liczby` VALUES ('5', '3');
INSERT INTO `liczby` VALUES ('6', '1');
INSERT INTO `liczby` VALUES ('7', '4');
INSERT INTO `liczby` VALUES ('8', '1');
INSERT INTO `liczby` VALUES ('9', '5');
INSERT INTO `liczby` VALUES ('10', '4');