# [ACCEPTED]-MySQL sort on a calculation-sorting

Score: 26

Yes, it is possible, and it does work. Check 2 out the following test:

``````CREATE TABLE a(a INT, b INT);

INSERT INTO a VALUES (1, 1);
INSERT INTO a VALUES (1, 2);
INSERT INTO a VALUES (1, 3);
INSERT INTO a VALUES (1, 4);
INSERT INTO a VALUES (1, 5);
INSERT INTO a VALUES (1, 6);
INSERT INTO a VALUES (2, 1);
INSERT INTO a VALUES (2, 2);
INSERT INTO a VALUES (2, 3);
INSERT INTO a VALUES (2, 4);
INSERT INTO a VALUES (2, 5);
INSERT INTO a VALUES (2, 6);

SELECT a.a, a.b, (a/b) FROM a ORDER BY (a/b);

+------+------+--------+
| a    | b    | (a/b)  |
+------+------+--------+
|    1 |    6 | 0.1667 |
|    1 |    5 | 0.2000 |
|    1 |    4 | 0.2500 |
|    2 |    6 | 0.3333 |
|    1 |    3 | 0.3333 |
|    2 |    5 | 0.4000 |
|    1 |    2 | 0.5000 |
|    2 |    4 | 0.5000 |
|    2 |    3 | 0.6667 |
|    2 |    2 | 1.0000 |
|    1 |    1 | 1.0000 |
|    2 |    1 | 2.0000 |
+------+------+--------+
``````

`SELECT a.a, a.b FROM a ORDER BY (a/b);` would return the 1 same results.

Score: 11
`````` SELECT *, (lp/ap) AS calculation from myTbl ORDER BY calculation
``````

This should do the trick, provided the (lp/ap) is 1 valid.

Score: 4

you would probably have more chance doing

``````SELECT *, (lp/ap) as n from myTbl ORDER BY n
``````

0

More Related questions