按数据库查询之外的算法结果对行进行排序

发布于 2024-12-21 10:42:42 字数 326 浏览 0 评论 0原文

我正在尝试根据 sql 语句之外的算法对数据库查询的结果进行排序。

例如 - 每行都有 author_karmapageviews 列。我想在获取行后通过在 php 中计算的算法对结果进行排序...

该算法可能如下所示

$score = intval($author_karma) + (intval($pageviews)/100) + intval($age)

在像黑客新闻这样的网站中,这是在 sql 查询中计算的吗?他们如何做到这一点?如果我尝试将分数存储在数据库中,多久更新一次(特别是当分数涉及时间时)?

I'm trying to order results of a db query based on an algorithm outside of the sql statement.

For example - each row has author_karma and pageviews columns. I'd like to order the result by an algorithm calculated in php after the rows are fetched...

The algorithm might look like this

$score = intval($author_karma) + (intval($pageviews)/100) + intval($age)

In sites like hacker news is this calculated in the sql query? How do they make this work? If I try to store the score in the db, how often to I update it (especially when time is involved in the score)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倾城泪 2024-12-28 10:42:42

您可以在查询中轻松完成

select this, that, other, (author_karmar + ( pageviews/100 ) + age ) as score from table order by score desc

You can easily do it in the query

select this, that, other, (author_karmar + ( pageviews/100 ) + age ) as score from table order by score desc
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文