自定义排序方面的问题想请教一下
3DMXM opened this issue · comments
小莫 commented
事情是这样的,我自定了一套积分算法:
积分 = 浏览/2 + 点赞 + 收藏*2
然后我想让热门内容按照积分从高到低进行排序
“积分”这个没有在数据库存为字段,如果要在数据库加的话要刷10多万条数据,感觉蛮麻烦的;
如果:
浏览是“click”
点赞是“mark”
收藏是“collection”
积分存为“integral”
请问要怎么写才能让内容按照积分从高到低进行排序
BillGe commented
可以使用sql模版实现自定义计算后的字段orderby排序的逻辑,但不建议这么做,不命中索引的sql语句执行是非常慢的,建议脚本计算下积分再入库根据积分进行排序
小莫 commented
但是积分是随着浏览、点赞、收藏变动而变动的,如果把积分加到字段的话,每当“浏览、点赞、收藏”变动时,都要把积分也更新一下,感觉很麻烦。
另外,sql语句我没怎么用过,如果用原生SQL是怎么写的呢
BillGe commented
select (click*2+mark+collection*2) as score from xxxxx where xxxxx order by score desc
小莫 commented
好的,谢谢