Jean-Max Reymond a écrit :
> SELECT * FROM personne OFFSET RANDOM() LIMIT 1;
Euh... Certainement plus efficace du point de vue SQL mais du point de vue
fonctionnel, si l'on considère que RANDOM() renvoie une valeur réelle entre 0
et 1, j'ai pour ainsi dire quelques doutes dès que la table contient plus de 2
enregistrements. (c;
Pour suivre ton idée, j'aurais bien écrit :
SELECT * FROM personne OFFSET ( RANDOM() * ( SELECT MAX(id_personne) FROM personne ) ) LIMIT 1;
Mais PostgreSQL n'aime pas :
ERREUR: l'argument de OFFSET ne doit pas contenir de sous-requêtes
Sébastien
--
Sébastien Dinot, sebastien(dot)dinot(at)free(dot)fr
http://sebastien.dinot.free.fr/
Ne goûtez pas au logiciel libre, vous ne pourriez plus vous en passer !