php - 按成本对数据库记录进行排序,但好像成本每天增加 1p?

标签 php mysql

我想知道是否可以在使用 MySQL 和 PHP 对数据库进行排序时添加一些数学知识。

简而言之,一位 friend 想要一个人们可以为服务付费的网站,但他的注意力会集中在较高的付费上,并在有时间时降低到较低的付费上。
最简单的方法是按支付的金额对记录进行排序,但这意味着 5 便士的支付将优先于已经在那里呆了 20 天的东西,所以我想到了增加支付的金额每天 1 便士。

有没有一种方法可以使用不涉及写入表的 sql 语句来执行此操作,或者我应该将所有内容放入 PHP 数组并在那里进行所有计算?或者,是否值得在数据库中额外添加两个表,一个表的成本会增加,另一个表用于跟踪上次更新的时间,以避免每天重新计算一次以上?

我想尝试最有效的解决方案,虽然 PHP 计算路线似乎最简单,但我必须一次处理所有记录,然后对它们进行排序,这可能对服务器造成很大负担。

最佳答案

您只需使用datediff()即可做到这一点:

order by payment + datediff(curdate(), submitdate) desc

关于php - 按成本对数据库记录进行排序,但好像成本每天增加 1p?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31570512/

相关文章:

javascript - 外部 PHP 数据不通过 AJAX 传递

c# - 数据不会显示在 DataGridView 中

php - 为什么 PHP 反引号和 SSH 不返回相同的值?

php - 获取时差

mysql - INPUT INTO 错误 - 初学者 MYSQL 语法问题

php - 如何在 PHP Mysql 中选择两个表进行比较并获取单个列值

mysql - 对两个 MySQL 查询执行左外连接?

php 使用 mysql 数据库检查和验证表单输入

php - 扩展 Doctrine2 形式 EntityType

php - 如何从 curl 句柄中删除先前设置的请求 header 引用字段?