在MySQL中实现列表搜索的最快方法

时间:2011-06-01 16:13:12

标签: php mysql algorithm

哪种是在MySQL中实现列表搜索的最佳(最快)方式?我的具体情况是:

  • 我有一个规则列表(例如{1,3,11,5,6,9,1232,4})。它可以用PHP或MySql实现。
  • 我在数据库中有一个列出应用规则的表格(例如{1,3,6})[table“applied”]
  • 我必须在尚未应用的第一规则列表中进行选择(在示例中,结果为11,因为已经应用了1和3)。
  • 当选择一个规则时,它会被执行(它的相关动作)并且“已应用”表被更新(在该示例中,应用程序在表中插入11:{1,3,6,11})

应用的规则必须存储在数据库中,因为每个页面加载中只执行一个规则。对于这类问题,哪种方法最好?有可用的示例代码吗?

1 个答案:

答案 0 :(得分:0)

要获取未应用的第一条规则,您可以使用

SELECT r.* 
FROM rules r 
LEFT JOIN applied a ON (a.rule_id = r.id)
WHERE a.rule_id IS NULL
ORDER BY r.id
LIMIT 1

然后执行与规则关联的操作,并将新记录插入applied表。