Salut à tous,
Je cherche une requête mysql qui pourrait sélectionner dans une table les 5 produits le plus proche d'un produit.
En fonction du n° de produit qui sert de référence, il se peut parfois qu'il n'y ai pas (ou pas assez) de produits après ce produit, parce que c'est le dernier de la liste ou bien parce qu'il n'y a que 1, 2, 3 ou 4 produits après ce produit (et pas 5)... dans ce cas là il faudrait ajouter les 1,2, 3, 4 produits qui sont juste après ce produit et ajouter les autres produits qui sont juste avant ce produit pour arriver au total à 5 produits.
Voici un tableau pour illustrer le problème :
Si le n° de produit est le 3 (peugeot 2008 diesel bleu), la requête devra sortir les 5 produits suivants : les n° 4, 5, 6, 7 et 8 parce qu'il s'agit toujours d'une "peugeot 2008 diesel" et qu'il existe bien 5 produits après le n° 3.
Mais si le n° de produit est le 15 (peugeot 2008 essence marron), la requête devra sortir les 5 n° suivants : le n° 16 puis les n° 14, 13, 12 et 11.
Je ne sais pas si je suis bien clair, si c'est pas le cas dites moi.
Voyez-vous une requête mysql qui puisse faire le job ?
Merci d'avance pour votre aide.
Je cherche une requête mysql qui pourrait sélectionner dans une table les 5 produits le plus proche d'un produit.
En fonction du n° de produit qui sert de référence, il se peut parfois qu'il n'y ai pas (ou pas assez) de produits après ce produit, parce que c'est le dernier de la liste ou bien parce qu'il n'y a que 1, 2, 3 ou 4 produits après ce produit (et pas 5)... dans ce cas là il faudrait ajouter les 1,2, 3, 4 produits qui sont juste après ce produit et ajouter les autres produits qui sont juste avant ce produit pour arriver au total à 5 produits.
Voici un tableau pour illustrer le problème :
Code:
Num Marque Modele Moteur Couleur
1 peugeot 2008 diesel blanc
2 peugeot 2008 diesel rouge
3 peugeot 2008 diesel bleu
4 peugeot 2008 diesel noir
5 peugeot 2008 diesel vert
6 peugeot 2008 diesel orange
7 peugeot 2008 diesel marron
8 peugeot 2008 diesel jaune
9 peugeot 2008 essence blanc
10 peugeot 2008 essence rouge
11 peugeot 2008 essence bleu
12 peugeot 2008 essence noir
13 peugeot 2008 essence vert
14 peugeot 2008 essence orange
15 peugeot 2008 essence marron
16 peugeot 2008 essence jaune
17 renault clio diesel blanc
18 renault clio diesel rouge
19 renault clio diesel bleu
20 renault clio diesel noir
21 renault clio diesel vert
22 renault clio diesel orange
23 renault clio diesel marron
24 renault clio diesel jaune
25 renault megane essence blanc
26 renault megane essence rouge
27 renault megane essence bleu
28 renault megane essence noir
29 renault megane essence vert
30 renault megane essence orange
31 renault megane essence marron
32 renault megane essence jaune
Si le n° de produit est le 3 (peugeot 2008 diesel bleu), la requête devra sortir les 5 produits suivants : les n° 4, 5, 6, 7 et 8 parce qu'il s'agit toujours d'une "peugeot 2008 diesel" et qu'il existe bien 5 produits après le n° 3.
Mais si le n° de produit est le 15 (peugeot 2008 essence marron), la requête devra sortir les 5 n° suivants : le n° 16 puis les n° 14, 13, 12 et 11.
Je ne sais pas si je suis bien clair, si c'est pas le cas dites moi.
Voyez-vous une requête mysql qui puisse faire le job ?
Merci d'avance pour votre aide.