ORDER BY RAND() après LIMIT

Eléphant du PHP | 190 Messages

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.

Eléphant du PHP | 190 Messages

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.

ViPHP
xTG
ViPHP | 7331 Messages

08 mai 2012, 11:07

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

Eléphant du PHP | 127 Messages

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();