是否可以對mySQL中的2行進行排序?例如,我有2行,lp
和ap
我試圖做這樣的事情:MySQL在計算上排序
SELECT * from myTbl WHERE 1 ORDER BY (lp/ap)
哪一個不是拋出一個錯誤,但它也並不是由計算的結果進行排序。有沒有辦法做到這一點,或者我必須將lp/ap存儲在數據庫中?
是否可以對mySQL中的2行進行排序?例如,我有2行,lp
和ap
我試圖做這樣的事情:MySQL在計算上排序
SELECT * from myTbl WHERE 1 ORDER BY (lp/ap)
哪一個不是拋出一個錯誤,但它也並不是由計算的結果進行排序。有沒有辦法做到這一點,或者我必須將lp/ap存儲在數據庫中?
是的,這是可能的,而且它的工作。看看下面的測試:
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);
會返回相同的結果。
謝謝,原來問題不在我的發言中,而是完全在其他地方,現在我覺得自己像個白癡。但很高興知道我的猜測結果是正確的。 – Stomped 2010-03-03 08:30:21
SELECT *, (lp/ap) AS calculation from myTbl ORDER BY calculation
如果(lp/ap)有效,這應該有效。
你可能有更多的機會做
SELECT *, (lp/ap) as n from myTbl ORDER BY n
'lp'和'ap'是行還是列? – 2010-03-03 08:14:46