Så dybest set kan dit problem formuleres som:
The first product of two adjacent products of type 3 cannot be placed
in a position which is a multiple of 5.
Det, der komplicerer tingene, er, at der ikke er nogen orden i din tabel, og uden en ordre er det umuligt at definere en konstant "position" for dine produkter. Rækkefølgen af returnerede rækker for en SELECT uden ORDER BY er ikke angivet.
Under alle omstændigheder er den nemmeste måde at gøre dette på i applikationen. Grib dine resultater som et array, scan det, og hvis du finder to produkter, der ikke er i den rigtige position, skal du blot blande dem rundt i arrayet.