Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment faire...requete avec mysql

4 réponses
Avatar
Cyril
Bonjour,

je cherche à faire une requête (base MySql) qui permette de retourner un
maximun de 10 lignes parmis n, les 10 lignes doivent être prises de
façon aléatoire...

C'est possible en SQL ? avec MySql ? ou dois je rammener les n lignes et
traiter avec du code :-(.

Merci de vos avis et ou conseil.

@+ Cyril

4 réponses

Avatar
Antoun
Cyril wrote:
Bonjour,

je cherche à faire une requête (base MySql) qui permette de retourner un
maximun de 10 lignes parmis n, les 10 lignes doivent être prises de
façon aléatoire...

C'est possible en SQL ? avec MySql ? ou dois je rammener les n lignes et
traiter avec du code :-(.

Merci de vos avis et ou conseil.

@+ Cyril



a priori, les BDD ne connaissent guère l'aléatoire ! Si je suppose que
tu tires tes 10 lignes parmi une TABLE contenant une ID (ou un critère
de tri unique), je te propose la méthodo suivante :

- récupération du nombre de lignes N (SELECT COUNT(*) FROM TABLE)
- tirage aléatoire en PHP de 10 nombres entre 0 et N-1
- boucle de récupération des lignes choisies aléatoirement avec LIMIT
(SELECT ... FROM TABLE LIMIT $i, 1)

Cela te fait faire en tout 11 requêtes... à toi de voir si c'est plus
économique que de ramener une seule requête de N résultats !
Avatar
Antoun
- boucle de récupération des lignes choisies aléatoirement avec LIMIT
(SELECT ... FROM TABLE LIMIT $i, 1)



oops... j'oubliais de caler le tri :
SELECT... FROM TABLE ORDER BY ID LIMIT $i, 1
Avatar
cléo
C'est possible en SQL ? avec MySql ? ou dois je rammener les n lignes et
traiter avec du code :-(.



SELECT ... FROM ... ORDER BY RAND() LIMIT 10
Mais certains utilisateurs semblent dire que ce n'est pas réellement
aléatoire, alors à vérifier avec ta version ...

Amicalement
--
Cléo
Avatar
Cyril
cléo a écrit :
C'est possible en SQL ? avec MySql ? ou dois je rammener les n lignes et
traiter avec du code :-(.




SELECT ... FROM ... ORDER BY RAND() LIMIT 10
Mais certains utilisateurs semblent dire que ce n'est pas réellement
aléatoire, alors à vérifier avec ta version ...

Amicalement


Top top et TOP !!, c'est simple qd on a la solution.

Merci et pour moi le "réellement aléatioire" est suffisant.

Amicalement,

Cyril