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    jauneSi 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.
 
 
		 
 
		 
 
		
 il fallait quand même la pondre cette requête.
 il fallait quand même la pondre cette requête. 
     
 
		 
 
		 
 
		