2012-04-23 63 views
0

我要订购此规则上升MySQL查询:x-y/xMySQL的ORDER BY XY/X ASC

X =价格

Y = price2

价格和price2是从MySQL中的列表。

我有这个查询,但不幸的是没有工作。

SELECT * 
FROM albums 
WHERE price2 > 1 
ORDER BY price - price2/price ASC 

感谢您的关注。

+2

究竟你是 “不工作” 是什么意思?有错误吗?你没有得到结果吗?你得到的结果,但他们不是你所期望的?如果可以,请添加例子。 – Wiseguy 2012-04-23 15:13:52

+1

查询确实给出了一个没有错误的结果,至少是结果是不是意外? http://sqlfiddle.com/#!2/05344/1 – 2012-04-23 15:16:46

回答

3

尝试了这一点:

$SQLquery = "SELECT * FROM albums WHERE price2 > 1 ORDER BY (price-price2)/price ASC"; 

$SQLquery = "SELECT * FROM albums WHERE price2 > 1 ORDER BY ((price-price2)/price) ASC"; 
3

你应该尝试:

SELECT * FROM albums 
WHERE price2 > 1 
ORDER BY ((price - price2)/price) ASC 

SELECT albums.*, ((price - price2)/price) myvar FROM albums 
WHERE price2 > 1 
ORDER BY myvar ASC 
+0

这是答案: 'SELECT * FROM albums WHERE price2> 1 ORDER BY(price - price2)/ price ASC' – CBuzatu 2012-04-23 15:18:32

0

顺序按基于指定列的作品。您可以从基表中创建一个视图或临时表,其中包含一个具有基于该公式的值的新列,然后对该列进行排序。

+2

MySQL不需要至少,它会高兴地排序大多数表达式。 – 2012-04-23 15:19:18