我有一個「items」表和一個「itemkeywords」表。 當用戶搜索關鍵字時,我想給他一頁結果加上結果總數。在表格中搜索並獲得結果和結果數量的最佳方法(MySQL)
我在做什麼目前是(針對搜索「ABC」用戶:
SELECT DISTINCT {fields I want} FROM itemkeywords JOIN items
WHERE (keyword = 'a' or keyword='b' or keyword='c'
ORDER BY "my magic criteria"
LIMIT 20.10
,然後我做同樣的查詢與計數
SELECT COUNT(*) FROM itemkeywords JOIN items
WHERE (keyword = 'a' or keyword='b' or keyword='c'
這可能會得到一個相當大的桌子,我認爲這個解決方案非常吸...
但我想不出什麼好多了
明顯的替代避免打MySQL兩次,這是隻做第一個查詢,沒有LIMIT子句,然後導航到正確的記錄顯示相應的頁面,然後到記錄集的結尾,以計算結果似乎更糟糕...
任何想法?
注:我使用ASP.Net和MySQL,PHP不
在過去的應用程序中,我使用了兩種技術(兩個查詢和一個沒有限制子句的查詢),具體取決於我期待的結果數量。我認爲有一個想法(雖然我從來沒有嘗試過)正在加入一個幾乎相同的子查詢來計算。這將是1分貝命中,但仍然有IO。 – 2008-09-28 16:40:22