Вид MySQL на вычислении

Действительно ли это возможно к виду на вычислении 2 строк в MySQL? Например, у меня есть 2 строки, lp и ap Я пытаюсь сделать что-то вроде этого:

SELECT * from myTbl WHERE 1 ORDER BY (lp/ap)

Который не бросает ошибку, но также не сортировка по результатам того вычисления. Существует ли способ сделать это, или я должен сохранить альбом/AP в базе данных?

9
задан Dominic Rodger 3 March 2010 в 08:17
поделиться

3 ответа

Да, это возможно, и это действительно работает. Посмотрите следующий тест:

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 ORDER BY (a / b); вернет те же результаты.

20
ответ дан 4 December 2019 в 07:14
поделиться
 SELECT *, (lp/ap) AS calculation from myTbl ORDER BY calculation

Это должно помочь при условии, что (lp / ap) действителен.

9
ответ дан 4 December 2019 в 07:14
поделиться

у вас, вероятно, будет больше шансов сделать

SELECT *, (lp/ap) as n from myTbl ORDER BY n
2
ответ дан 4 December 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: