Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2006, 10h42   #1
Invité régulier
 
Inscription : septembre 2006
Messages : 28
Détails du profil
Informations personnelles :
Localisation : France, Territoire de Belfort (Franche Comté)

Informations forums :
Inscription : septembre 2006
Messages : 28
Points : 9
Points : 9
Par défaut Operation Mysql previous et next

Salut à tous,

voila, je n'ai qu'une connaissance modéré du SQL, mais il m'aurait été très pratique de sélectionner dans une requète un enregistrement dans une table, selon des critères dans WHERE, et sélectionner les enregistrement précedent et suivant (selon un champ de ma clause where) du resultat ...

pour illustrer clairement:

SELECT mon_champ WHERE type=valeur AND (id=valeur2 OR id=previous(valeur2) OR id=next(valeur2)) ORDER BY id ASC

j'aimerais sélectionner les enregistrement precedent et suivant celui qui à la valeur "valeur2" et qui répondent aux autres critère à savoir type=valeur ...
j'espère que ca existe ...
actuellement je selectionne tout les elements (pas de tri sur id) et après je parcours les enregistrements dans l'ordre en enregistrant le precedent et le suivant jusqu'a tombé sur celui qui a id=valeur2 ... pas terrible !


Voila , d'avance merci
amaurylerouxdelens est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2006, 11h13   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Bonjour,

De telles fonctions n'existent pas. En revanche, tu peux utiliser un truc du genre :

Code :
1
2
3
4
5
# précédent
SELECT mon_champ WHERE type=valeur AND id<valeur2 ORDER BY id DESC LIMIT 1;
 
#suivant
SELECT mon_champ WHERE type=valeur AND id>valeur2 ORDER BY id ASC LIMIT 1;
En supposant que le l'ordre que tu veux est bien l'ordre des identifiants auto-incrémentés...
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2006, 11h36   #3
Invité régulier
 
Inscription : septembre 2006
Messages : 28
Détails du profil
Informations personnelles :
Localisation : France, Territoire de Belfort (Franche Comté)

Informations forums :
Inscription : septembre 2006
Messages : 28
Points : 9
Points : 9
Citation:
Envoyé par Maximilian
Bonjour,
En supposant que le l'ordre que tu veux est bien l'ordre des identifiants auto-incrémentés...
C'est effectivement le cas.
Merci pour l'astuce à laquelle je n'avais pas pensé !
amaurylerouxdelens est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h48.


 
 
 
 
Partenaires

Hébergement Web