Php 快速算法需要两种解决方案

Php 快速算法需要两种解决方案,php,mysql,algorithm,performance,Php,Mysql,Algorithm,Performance,我得到了一个投标表(不同的用户)。每个用户都可以在任何时候出价(无限制) 我需要应用两条规则来取消投标: 第一条规则-不超过4个连续出价,这意味着如果用户有: 10.50 10.47 10.36 10.20 10 所以10点应该取消 第二条规则是前50名中的投标不得超过9个,第10个也应取消 我做了很长的一段路,只是在竞价表上跑步,计算连续性。但我想知道是否有人有其他想法。。。(php+mysql) 感谢第二个标准: SELECT username, count(*) as bids FROM

我得到了一个投标表(不同的用户)。每个用户都可以在任何时候出价(无限制)

我需要应用两条规则来取消投标: 第一条规则-不超过4个连续出价,这意味着如果用户有: 10.50 10.47 10.36 10.20 10 所以10点应该取消

第二条规则是前50名中的投标不得超过9个,第10个也应取消

我做了很长的一段路,只是在竞价表上跑步,计算连续性。但我想知道是否有人有其他想法。。。(php+mysql)


感谢第二个标准:

SELECT username, count(*) as bids
FROM 
  (SELECT username
  FROM bids
  ORDER BY bid_timestamp DESC
  LIMIT 50)
WHERE username = :username
GROUP BY username
HAVING COUNT(*) > :bid_limit

如果此记录返回任何行,则不允许新的出价。这可能是一种更好的方法,但它比将所有50行返回到php,然后迭代并计数要好。

请给出更详细的连续性标准。只是递减的,还是递增的?10 11 9 8 7是否连续?第一个标准的连续性只是一个接一个,中间没有任何其他用户的出价。不管是1美分还是50美分分开,它仍然是连续的。问题是需要取消包装中较低的一个。有9个出价,然后出价高于9个出价中最低的一个,那么第9个应该被取消,新的出价是可以的。。。