SQLite : Choisir aléatoirement une ligne dans une table

Et dire qu’une ligne de commande à connaitre évite bien des problèmes

Histoire de ne pas faire un article d’une ligne on va faire du blabla
Donc question : que faites vous actuellement pour selectionner une seule ligne au hasard dans votre bdd d’application mobile ?

Après l’avoir vu de trop nombreuses fois :

  • Tu prends toutes les lignes puis tu fais un random dessus
  • Tu stockes le nombre de ligne et tu fais un random puis tu fais la requete qui récupère la ligne
  • Autres pratiques exotiques et diverses

ARRETEZ TOUT ! Voici la méthode la plus simple et efficace, le tout en 1 ligne !

La Requete

On selectionne la table

Commençons la requete sql :

SELECT * FROM NOM_DE_LA_TABLE

Oui on prend toutes les lignes de la tables, oui j’explique TOUT, je tiens a mon quotas de ligne ….

On ajoute le suffle (mélange)

SELECT * FROM NOM_DE_LA_TABLE ORDER BY RANDOM()

On selectionne tout ! mais les lignes sont mélangées

Il ne doit en rester qu’un !

SELECT * FROM NOM_DE_LA_TABLE ORDER BY RANDOM() LIMIT 1

Et oui, on ne prend que la première…

Voila de quoi raccourcir un code gros & lent par une petite ligne rapide, la méthode SKIP, oui, petit et puissant !


22. décembre 2017 SQLite