Requetes au hasard sans id [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 18-04-2003 à 16:25:00
avec un champ numérique on fait comme ça, sans je sais pas...
SELECT champ1 FROM matable WHERE Id = RAND();
Marsh Posté le 18-04-2003 à 16:26:43
Sh@rdar a écrit : avec un champ numérique on fait comme ça, sans je sais pas... |
je peux po utiliser l'id, enfin, j'ai un id mais il est po numérique, c'est des références du type 123456 ou encore 123456A...
Marsh Posté le 18-04-2003 à 16:31:19
bah...
ça depends...
le plus simple, c'est de faire :
select count(*) from truc
-> tu récupères la valeur, que tu multiplie par rnd() qui que tu arrondis à l'entier inférieur (nombre aléatoire entre 0 et 1)
puis : (an suposant que a = le nombre ainsi généré)
select limit(a + 1, a + 2) * from truc
Marsh Posté le 18-04-2003 à 16:42:26
je sais pas quel sgbd tu utilises mais essayes ça:
select * from taTable order by rand()
Marsh Posté le 18-04-2003 à 16:44:45
à priori, ça va pas faire grand chose, ça fa juste trier selon une colonne au hazard, sans plus... donc ça va tout le temps être les n mêmes lignes qui vont revenir, avec n = nombre de colonnes.
Marsh Posté le 18-04-2003 à 17:05:56
Non order by rand() remonte les lignes ordonnées au hasard ( mais pas au hasard des colonnes présentes dans le résultat).
Marsh Posté le 18-04-2003 à 18:17:35
order by rand() limit 1
là ca marche nickel, pile poil ce ke je voulais...
Merci bcp
Marsh Posté le 18-04-2003 à 21:30:39
Anapajari a écrit : Non order by rand() remonte les lignes ordonnées au hasard ( mais pas au hasard des colonnes présentes dans le résultat). |
OK. C'est étrange. Ca marche sous quel SGBD ?
Parceque normalement, la syntaxe "order by [un nombre]" trie par le "nombre"ième colonne.
Marsh Posté le 19-04-2003 à 00:01:00
Vais voir ce que ça donne avec SQL Server.
Mais à priori, ça marche pas, parceque c'est complètement pas standard
Marsh Posté le 19-04-2003 à 00:04:10
mince, petit problème technique j'ai fait une connerie tout à l'heure dans mes paramètres de sécurité, je peux plus lancer de programmes autres que *.BAT
Marsh Posté le 19-04-2003 à 00:06:56
ca va mieu quand c'est réactivé
après vérification, avec SQL Server, "Order By Rand()" est sans effet.
Marsh Posté le 19-04-2003 à 11:33:08
Benh je tourne sous MySql 3.23.54 et ça marche sans aucun problème. tant mieux, j'vé po me plaindre
Marsh Posté le 20-04-2003 à 19:41:51
je crois que sous sql server faut faire:
select * from TABLE order by newid()
mais à vérifier ...
Marsh Posté le 18-04-2003 à 16:12:18
Je cherche a faire une requete qui me sorte une de mes lignes complêtement au hazard mais sans passer par un champ du type Id.
Si kk'un à un filon, ca serait le bienvenue.