2009-10-20 28 views

回答

2

它比較簡單。

t = (time of entry post) - (Dec 8, 2005) 

你會的日期值轉換爲時間戳(可以使用unix_timestamp),讓您可以在比較的其餘部分中使用的整數。

x = upvotes - downvotes 

這一個應該很容易...明顯MySQL支持減法。

y = {1 if x > 0, 0 if x = 0, -1 if x < 0) 
z = {1 if x < 0, otherwise x} 

對於這些,看看MySQL的case聲明。

log(z) + (y * t)/45000 

MySQL有一個log功能,所以這應該是一件容易的事,只是簡單的數學。

而且,你將它與select聲明結合在一起。您可以使用user-defined variables將中間計算存儲在您的select聲明中。例如:

select @x := (upvotes - downvotes) as x, 
     (@x > 4) as isXGreaterThanFour 
+0

如何在CASE語句中使用'x'(upvotes-downvotes)? –

+0

我添加了一個如何使用變量進行中間計算的示例 –

+0

您能否將其全部寫出來?我在這裏還是很困惑...... – 2009-11-20 07:42:08