User variables, even though not part of standard SQL, are great objects in MySQL. They allow to keep some “state” for the life of a session: a session can execute a statement to compute a value, store that value in a user variable, and use it in all next statements.…
via Planet MySQL
Row numbering, ranking: how to use LESS user variables in MySQL queries