sql tirant une ligne pour la rangée suivante ou précédente d'une ligne courante
id | titre de la photo | created_date XEi43 | ma famille | 2009 08 04 dDls | groupe d'amis | 2009 08 05 32kJ | bel endroit | 2009 08 06 EOIk de travail | fin | 2009 08 07
Dire que j'ai l'id 32kJ
. Comment aurais-je obtenir la ligne suivante ou la précédente?
source d'informationauteur Basit | 2009-08-11
Vous devez vous connecter pour publier un commentaire.
C'est ce que j'utilise pour trouver les boutons précédent/suivant les dossiers. Une colonne de votre table peut être utilisée comme la colonne de tri, et pas de joint ni de méchant hacks sont nécessaires:
Enregistrement suivant (date de plus de enregistrement en cours):
Précédent record (date de moins que le record actuel):
Exemple:
Je me rends compte que vous utilisez MySQL, mais juste pour la référence, ici, est de savoir comment vous le faire à l'aide d'Oracle fonctions analytiques de PLOMB et LAG:
Je pense qu'il ya une raison pourquoi Oracle coûte de l'argent et MySQL est gratuit... 🙂
Cette page vous montre comment émuler les fonctions analytiques dans MySQL.
Ne voulez-vous la prochaine/précédente ligne par date? Si oui, vous pourriez faire ceci:
À l'aide de Mike MAX/MIN astuce on peut faire précédent\prochaine sauts pour toutes sortes de choses. Cette msAccess exemple sera de retour à la précédente à la fermeture, pour chaque enregistrement, dans un marché de la bourse de table de données. Remarque: le '<=' est pour les week-ends et les jours fériés.
..."hier" illustre l'utilisation d'une fonction(Date-1) de saut; on pourrait avoir tout simplement utilisé...
Le truc, c'est que nous pouvons précédente\prochaines # quel(s) avec MAX\MIN et une fonction de saut()
Horrible hack - je n'aime pas cela, mais pourrait fonctionner..
Que de toute utilisation?
J'ai considéré id comme clé primaire dans la table (et en tant que "numéro de ligne"), et l'a utilisé pour comparer chaque enregistrement avec la fonction d'enregistrement avant.
Le code suivant doit travailler.