我想知道是否可以在使用 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/