ORDER BY RAND() après LIMIT

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ORDER BY RAND() après LIMIT

Re: ORDER BY RAND() après LIMIT

par nhachet » 08 mai 2012, 11:17

Ou alors faire une sous requête :
SELECT ss_req.* FROM (
    SELECT * FROM table_1 WHERE 1=1 LIMIT 40
) ss_req ORDER BY RAND();

Re: ORDER BY RAND() après LIMIT

par xTG » 08 mai 2012, 11:07

Le LIMIT est la dernière clause prise en compte.
Donc non, il te faut faire cela avec PHP.

Re: ORDER BY RAND() après LIMIT

par Zahnzao » 08 mai 2012, 11:04

Pas d'idées ?

Je ne trouve rien à ce sujet sur la toile...

Je vais mettre mes résultats dans un tableau et les mélanger avec php.

Merci.

ORDER BY RAND() après LIMIT

par Zahnzao » 07 mai 2012, 14:40

Bonjour,

Voici une requête
$sql='SELECT id,idBlog,pic,margin,date,idPost,idCron FROM pics WHERE idCron="'.$idCron.'" ORDER BY id ASC LIMIT '.$start.','.$maxByPage;
C'est un affichage par page via php. En l’occurrence ici il me retourne 40 résultats.

Est-il possible via mysql de trier aléatoirement uniquement les 40 résultats retournés par le LIMIT ?

Ou la seule solution est de les mélanger via mon script php ?

Merci.