As seen on stackoverflow, mysql does that too. https://stackoverflow.com/questions/7392730/what-does-sql-clause-group-by-1-mean consider: select id,1+random() from test order by random()+1; select id,random() from test order by +random(); Both of these call random() twice for each row, delivering an "unexpected" order of results. Whereas select id,random() from test order by random(); select id,random() from test order by 2; both deliver the expected order