Corsi on-line

Estrarre un record per ordine di precedenza

In questo brevissimo post mostrerò un semplicissimo trucchetto grazie al quale estrarre un record precedente ad un altro per valore di identificativo autoincrementale; immaginiamo di voler estrarre il record precedente a quello che ha come ID il valore “10”, non è detto che in tabella sia presente l’ID “9”, questo potrebbe essere stato cancellato, quindi la semplice istruzione:

SELECT * FROM t WHERE id = 9;

potrebbe non avere alcune effetto, utilizzaremo invece la seguente istruzione:

SELECT * FROM t WHERE id < 10 ORDER BY id DESC LIMIT 1;

In questo modo verrà estratto il primo record avente valore di ID inferiore a quello utilizzato nella clausola WHERE, esso potre essere per esempio anche “3”, infatti, se almeno uno sarà stato conservato il numero di record cancellati non avrà importanza.

Nello stesso modo, per estrarre il primo record successivo ad uno considerato, l’istruzione da utilizzare dovrà essere definita sul modello della seguente:

SELECT * FROM t WHERE id > 10 ORDER BY id ASC LIMIT 1;
Post correlati
I più letti del mese
Tematiche