我是一个设计网站,订购其投票和年龄的结果。PHP MYSQL查询算法帮助
我找到了reddit算法,我认为这是最好的使用。但是,我不知道如何实现这个到php。我搜索了谷歌如何做到这一点,但我找不到任何结果。我不知道这是否意味着什么,因为我不知道我应该搜索什么。
但是我知道基本的PHP,有没有一种方法可以以一种简单的方式实现这一点。
是否有可能做这样的:
"SELECT * FROM table ORDER BY algorithm_here DESC";
的reddit的算法如下:
Log10(Z) + ((Y*Ts)/45000) = rank
A = time posted
B = 00:00:001 am 1/1/2010
U = Up votes
D = Down votes
Ts = A-B
X = U-D
Y =
1 if x>0
0 if x=0
-1 if x<0
z = max(abs(x),1)
我知道如何在PHP中创建函数,例如function test(){... 但是,这会为查询工作吗? ($ a,$ u,$ d){ $ ts = $ a - 1262304001; $ x = $ u - $ d; if($ x> 0) \t $ y = 1; ($ x = 0) \t $ y = 0; elseif($ x <0) \t $ y = -1; \t $ z = max(abs($ x),1); $ rank = log10($ z)+(($ y * $ ts)/ 45000); print($ rank); } – Xplane 2010-12-05 19:52:47
在php中不创建函数并不是明智的。因为如果你这样做了,唯一能够正常工作的方法是加载所有行并通过fn传递每一行以生成等级,然后使用等级对列表重新排序,然后将其切片到所需的页面。 这将工作,如果你只有更少的行像1000行左右的总数。 BT如果你有超过10万行和所有。它不可能运行,因为PHP在加载所有行时会耗尽内存。 所以最好的办法是通过MySQL。 但是你不需要随UDF的进步,因为它相当先进。 – 2010-12-05 20:00:39