Resultat aleatoire [Résolu]

pioug70 14 Messages postés lundi 13 janvier 2003Date d'inscription 27 mars 2006 Dernière intervention - 22 août 2005 à 23:49 - Dernière réponse : pioug70 14 Messages postés lundi 13 janvier 2003Date d'inscription 27 mars 2006 Dernière intervention
- 23 août 2005 à 23:42
Bonjour,



J'execute une requete qui me renvoie N resultats parmis ces N resultats je souhaite en recupérer 1 seul et de maniere aléatoire.





Exemple



resultat requete actuellement

Toto

Titi

Lili

Lolo

LoLa



J'aimerai que la requete me ressorte que Titi par exemple



Merci
Afficher la suite 

7 réponses

Répondre au sujet
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 23 août 2005 à 19:57
+3
Utile
J'ai oublié



le top 1



SELECT TOP 1 RAND(table_ID*10000) AS ALEA, table_ID

FROM T_table

ORDER BY ALEA



--> renvoie le premier enregistrement.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 23 août 2005 à 19:55
0
Utile
Salut



Indique sur quelle base es tu?



Et je pense que ceci doit etre fait par programme.



regarde avec cette methode



table id = numero d'enregistrement ou colonne numerique quasi unique.





SELECT RAND(table_ID*10000) AS ALEA, table_ID

FROM T_table

ORDER BY ALEA



SQLserver



Esperant que ca fonctionne?
Commenter la réponse de nhervagault
pioug70 14 Messages postés lundi 13 janvier 2003Date d'inscription 27 mars 2006 Dernière intervention - 23 août 2005 à 20:48
0
Utile
Salut,



J'utilse HSQLDB (base de donnée 100% Java) les fonctionnalitees de
HSQLDB sont tres limitées je pense pas que le RAND passe. De plus je
prefere optimiser la requete que de faire ca en Java (deja que HSQLDB
est lent) de plus je ne veux pas que ce soit obligatoirement le premier
resultat car j'effectue souvent la meme requete donc j'aurais toujours
le meme resultat, et je souhaite qu'il soit au contraire aleaoire.



Merci
Commenter la réponse de pioug70
pioug70 14 Messages postés lundi 13 janvier 2003Date d'inscription 27 mars 2006 Dernière intervention - 23 août 2005 à 20:50
0
Utile
Oups,

<strike>de plus je ne veux pas que ce soit obligatoirement le premier resultat
car j'effectue souvent la meme requete donc j'aurais toujours le meme
resultat, et je souhaite qu'il soit au contraire aleaoire.

</strike>OUPS j'avais pas vu le RAND apres le TOP 1

<strike>

</strike>
Commenter la réponse de pioug70
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 23 août 2005 à 20:56
0
Utile
J'ai été voir la doc,



Rand n'existe pas



Mais limit peut faire le boulot



limit n, 1



--> le n nieme enregistrement

n etant passé par le programme.
Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 23 août 2005 à 20:58
0
Utile
C'est pas grave, le rand selectionne --> le top 1 = limit 0,1







Maintenant il faut de debouiller pour faire le limit n,1



Voila
Commenter la réponse de nhervagault
pioug70 14 Messages postés lundi 13 janvier 2003Date d'inscription 27 mars 2006 Dernière intervention - 23 août 2005 à 23:42
0
Utile
Salut he ben le Rand existe mais il fo l'utiliser comme ceci



SELECT TOP 1 CHAMP, RAND() as ORDRE FROM MATABLE ORDER BY ORDRE;
Commenter la réponse de pioug70

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.