Ottenere record precedente e successivo con query al database

Giorgio Borelli

Dato un record della nostra tabella, può essere utile in diverse occasioni voler ottenere il record precedente e/o il record successivo dal database, che sia MySql, SqlServer, Oracle o altro RDBMS. Supponiamo ad esempio di avere la nostra piattaforma di gestione dei contenuti (CMS - Content Management System) e di voler implementare un motore di blogging, una funzionalità molto diffusa su tutti i blog è quella di consentire di leggere articolo precedente e leggi articolo successivo  dato un post o articolo (il nostro record), per far ciò ci serve ottenere dal database il record  precedente e successivo.

Questo è solo un esempio ma i casi potrebbero essere tanti, ottenere il record precedente e successivo è molto semplice e può tornare utile in tanti contesti, per realizzare ciò basta fare due query al database, andiamo a vedere come fare.

In quasi tutti i casi su ogni tabella implementata sui nostri database, si và a definire il campo Id come chiave primaria di valore intero ed autoincrementale; la definizione di questa colonna consente di identificare in maniera univoca ogni record della nostra tabella. Basandosi allora sul valore del campo univoco Id di un dato record, con una semplice interrogazione sul database basato su di esso sarà facile ottenere il record precedente e successivo,  andremo a scrivere la seguente query SELECT per il record precedente:

SELECT * FROM my_table WHERE id<id_value

Invece per il record successivo la query che scriveremo sarà:

SELECT * FROM my_table WHERE id>id_value;

Niente di più facile, una volta ottenuto il record precedente o successivo possiamo gestirlo come meglio crediamo a seconda delle nostre esigenze, indipendentemente dal linguaggio di programmazione e dal database utilizzato.

Chiunque volesse porre una domanda o dire la propria su "Ottenere record precedente e successivo con query sul database", può farlo tramite lo spazio dei commenti, ogni vostro intervento sarà gradito.

Categorie: database

Tags: , , , ,

Aggiungi Commento

biuquote
  • Commento
  • Anteprima
Loading