2011-06-01 56 views
1

這是在MySQL中實現列表搜索的最佳(最快)方法嗎?我的具體情況是這樣的:在MySQL中實現列表搜索的最快方法

  • 我有一個規則列表(例如{1,3,11,5,6,9,1232,4})。它可以在PHP或MySql中實現。
  • 我在DB中的表,列出應用的規則(例如,{1,3,6})[表「施加」]
  • 我有未施加規則的第一列表之間進行選擇然而(在這個例子中結果是11,因爲1和3已經被應用)。
  • 當一個規則被選擇時,它被執行(它的相關操作)並且「應用」表被更新(在該示例中,應用程序在表中插入11:{1,3,6,11})

應用規則必須存儲在數據庫中,因爲在每個頁面加載中只執行一個規則。這是哪類問題的最佳實施?任何示例代碼可用?

+0

我的第一個問題是從'applied'(SELECT * FROM'applied')獲取所有信息並使用PHP進行操作。但它似乎太重了一個真正的應用程序:) – Ivan 2011-06-01 16:58:14

回答

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表。

+0

非常鼓舞人心的解決方案。謝謝! – Ivan 2011-06-01 17:59:59

相關問題