Záhada s MySQL, kdo ji rozluští?

Nyní jsem strávil asi 3 hodiny hledáním chyby v jádru systému pro eshopy, kdy nakonec oprava (jak už to tak bývá) zabere jen nějakých pár sekund dopsáním jednoho řádku kódu. Takže kde byl problém?

Mějme dotaz do DB:

SELECT `id`
FROM `product`
WHERE (`id` IN (2, 30, 5403, 11640, 11652, 11642, 11653, 12421, 11641, 12404, 12392, 12400, 11654,
12394, 11643, 12405, 9841, 12401, 11656, 12393, 11645, 12407, 11666, 12403, 11655, 12396, 11644,
12406, 12399, 12402, 11657, 12397, 11646, 12398, 11647, 12395, 11650, 11663, 11648, 11664, 11649,
11665, 11651, 12244, 984, 985, 983, 986, 5754, 5753, 3340, 5404, 2781, 1966, 2782, 401, 2806, 1967,
2780, 400, 2807, 3561, 3562, 981, 982, 12667) AND `state` = ‘enabled’ AND `price_vat` > 0)
ORDER BY `php_price_display` DESC, `price_vat` DESC

Jehož výsledkem je (kupodivu):

12244,2,2806,2807,3340,3561,3562,5403,5404,5753,5754,12667,2782,2781,2780,400,401,981,982,983,984,985,986,1966,1967,30,11649,11651,12399,11666,12398,11648,11647,11650,11646,11657,11656,11645,12397,12421,11655,11644,12393,11665,11654,11643,12396,11642,9841,12395,12407,12403,12402,12406,12394,11664,11653,11641,11663,12401,12405,11652,11640,12392,12400,12404,

Ok, na tom asi není nic zvláštního, dobře dále, přidejme k dotazu:

LIMIT 6

a jaký teď dostaneme výsledek??? No přece takový:

12244,2,400,12667,981,982,

Pro ty co nechápou, oč se jedná. Druhý výsledek totiž vůbec nekopíruje výsledek první (od čísla 2 jsou výsledky jinak, než v prvním případě), přitom jsem jen databázi řekl, ať mi z celého výsledku zobrazí jen 6 čísel. Nic víc. No, tuhle chybu v systému nalézt, to byl fakt oříšek. A já blbec prolézal všechny možné napojené moduly, submoduly, porovnával sortovací mechanizmy a nakonec z toho výjde takováhle blbost.

Aby záhada byla kompletní, přídám k dotazu ještě:

OFFSET 12

a jaký je výsledek teď?

12244,2,400,12667,981,982,

ano, vidíte správně. Výsledek je stejný jako dotaz bez OFFSETu. Proto jsme taky na chybu přišli, najednou nám totiž stránkování v systému vyhazovalo stejné výrobky na jiných stránkách.
Ok, teď otázka pro Vás, jakým způsobem tento nešvar MySQL opravíme??? (ne že bych nevěděl, už to opravené mám, jen by mě zajímalo, jak jste si s tím poradili vy)
Omlouvám se zároveň těm, co tohle znají a mají mě za nevzdělaného hňupa – na mou obranu, chybama se člověk učí. Ještě se mi to nikdy nestalo a do budoucna si už na tento nesmysl dám určitě pozor!!!