SELECT + min() + rand()

[Résolu]
Signaler
Messages postés
75
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
3 juin 2012
-
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
-
Bonjour,

Je veux faire une requete un peu compliqué pour moi...

Dans une table j'ai les champs ID, nom, score.

Je voudrais que ma requete me retourne une des personnes de la liste au hasard pourvu qu'elle ait le score le plus petit.

Ex :
1   Joe   12
2   Mike   13
3   Vinz   12
4   Tom    15

La requete devra me retourner au hasard "Joe" ou ""Vinz"

4 réponses

Messages postés
75
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
3 juin 2012

J'ai trouvé...

SELECT*FROM`tbl`WHERE`score`IN( SELECTmin(`score`)FROM`tbl`) ORDER BYrand()
Messages postés
75
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
3 juin 2012

SELECT
*
FROM
`tbl`
WHERE
`score`
IN
(


SELECT
min
(
`score`
)
FROM
`tbl`) ORDER BY rand() LIMIT 1

Pour n'avoir qu'une seule ligne biensur...
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
Bonjour,
Joli, mais je ne comprends pas comment tu fais , cela te trie par la rand()-ième  colonne ?
rand() est compris entre quoi et quoi sous mysql ?

Cela ne serait-il pas mieux :
select rand(),* from `tbl`WHERE`score`IN(SELECTmin(`score`)FROM`tbl`) ORDER BY 1 LIMIT 1   ?

Dom
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
Non

Dom