J'ai un problème avec order by
. Nous savons que si nous donnons un nombre entier dans l'ordre par alors il ordonne par l'index de la colonne. Lorsque je l'utilise de cette façon, chaque fois que j'exécute la requête, j'obtiens le même résultat, ce qui est correct.
Mais quand je fais de cette valeur le résultat d'une expression (je veux dire que j'utilise une expression qui toujours évalue à 1), alors j'obtiens 3 combinaisons possibles de résultats lorsque je l'exécute.
Ainsi, pour une même valeur qui est statique, même résultat ; mais pour une même valeur qui est une expression évaluée, résultats différents.
Vous trouverez ci-dessous l'exemple de requête auquel je fais référence :
SELECT SomeColumns, (rand()* 10) as rand
FROM TableName
ORDER BY (if ((rand in (1) ), 1,1))
LIMIT 0 , 6
La requête ci-dessus donne trois ensembles de résultats possibles.