comment tirer au hazard un certain nombre de lignes [MYSQL] - SQL/NoSQL - Programmation
Marsh Posté le 05-08-2002 à 16:13:30
bin si tes lignes sont identifiées par un id quelconque (genre un nombre par exemple), tu généres X nombres aléatoire entre min(id) et max(id)
puis tu fais un select traditionnell avec tes id générés aléatoirement.
Marsh Posté le 05-08-2002 à 16:18:10
ben ce sont de reference auto-incrémentales, le pbm c qu'elle ne sont pas continues, je risquerais de tomber ds un "trou"!
Marsh Posté le 05-08-2002 à 16:42:23
ouais bin désolé faut ce qu'il faut. une BD c'est pas vraiment pour te retourner un truc à la random. C'est un peu bizarre comme requete tu ne trouves pas ?
Donc c'est au client de générér ce truc aléatoire.
Et bon si t'as des troucs, c'est pas bien grave, tu auras des records en moins.
Marsh Posté le 05-08-2002 à 16:47:55
vive la doc !
RAND()
RAND(N) Retourne un nombre aléatoire, compris entre 0 et 1.0. Si un entier N est précisé, il est utilisé comme valeur de seed.
mysql> select RAND();
-> 0.5925
mysql> select RAND(20);
-> 0.1811
mysql> select RAND(20);
-> 0.1811
mysql> select RAND();
-> 0.2079
mysql> select RAND();
-> 0.7888
Il est impossible d'utiliser une colonne de valeur RAND() avec la clause ORDER BY , car la colonne sera évalué plusieurs fois. Avec MySQL 3.23, il est cependant possible d'écrire: SELECT * FROM Nom_table ORDER BY RAND(). Comme cela, il est possible de faire une sélection aléatoire d'une table : SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000.
Marsh Posté le 05-08-2002 à 16:49:53
c'est dingue ca!
Marsh Posté le 05-08-2002 à 18:53:45
Sh@rdar t genial! et pourtant je l'avais lue la doc... en fait c pour présenter en 1ere page un échantillon des produits, et il faut que ça tourne...
yaaiiiss, ça marche au poil je vous remercie.
bon un ptit tour sur le site pour voir à quoi cela à bien put me servir:
http://sunautosat.free.fr
greg>po grave, paske c une selection sur 3 lignes...
darklord>ben en fait, si MySQL est reconnu comme applicatif pour les ite webs, ils ont tt interet à proposer ce genre de fonction, puisqu'il y a des gens qui en ont besoin
Marsh Posté le 05-08-2002 à 19:05:12
stb a écrit a écrit : greg>po grave, paske c une selection sur 3 lignes... |
ben oui et non, l'order se fait forcément sur toute la longueur de la table.
et sinon, il me semble que commercialement ça serait plus judicieux d'afficher en page d'accueil 3 voitures que tu ou qqun d'autre défini pour qu'elles apparaissent en 1e page. mais bon
Marsh Posté le 05-08-2002 à 19:07:57
greg>oui c vré, je suis définitivement con... dire que j'ais vu ça cette année en licence (optimisation des requêtes).
Quand au choix des voitures, c'est ce que le commanditaire à décidé, alors...
Marsh Posté le 05-08-2002 à 19:09:56
stb a écrit a écrit : greg>oui c vré, je suis définitivement con... dire que j'ais vu ça cette année en licence (optimisation des requêtes). Quand au choix des voitures, c'est ce que le commanditaire à décidé, alors... |
c pas grave demande à darklord
et pour le choix, bon ok. mais des fois faut proposer des choses aux clients
Marsh Posté le 05-08-2002 à 21:30:57
question optimisation faut voir, ça doit pas être si lent que ça.
au niveau du moteur, MySQL doit d'abord générer le random puis ensuite sélectionner les lignes correspondantes rien de bien colossal à mon avis..
à bencher tout ça !
Marsh Posté le 05-08-2002 à 21:38:18
--greg-- a écrit a écrit : c pas grave demande à darklord et pour le choix, bon ok. mais des fois faut proposer des choses aux clients |
dis donc toi. Je te signale que tu es à 5m de moi 8h/jour alors tu te calmes hein sinon
Marsh Posté le 05-08-2002 à 21:40:09
DarkLord a écrit a écrit : dis donc toi. Je te signale que tu es à 5m de moi 8h/jour alors tu te calmes hein sinon |
oups
Marsh Posté le 05-08-2002 à 21:40:28
j'aime mieux ca.
Bon et PHP c'est bon là ?
Marsh Posté le 05-08-2002 à 21:41:07
DarkLord a écrit a écrit : j'aime mieux ca. Bon et PHP c'est bon là ? |
ouaip, mais pb de config de chora ou cvs
t'as pas vu mon mail?
Marsh Posté le 05-08-2002 à 21:41:25
euh je regarde
Marsh Posté le 05-08-2002 à 15:53:12
Bon je m'explisque, j'aimerais recuprer apres une requete sql n lignes prises au hazard dans une table.
Existe il un moyen de faire ça en SQL, ou doit on faire n requetes?