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

时间:2011-02-21 15:59:25

标签: php mysql algorithm performance

我有一个出价表(不同的用户)。每个用户都可以随时出价(无限制)。

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

第二条规则在前50个出价中不超过9个出价,同样,第10个应该被取消。

我做了很长的路,只是在出价表上运行并计算连续数。但我想知道是否有人有其他想法......(php + mysql)

由于

1 个答案:

答案 0 :(得分:0)

对于第二个标准:

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然后迭代并计数更好。

相关问题