我有一個表,看起來有點像這樣:多個查詢或額外的數組處理?
CREATE TABLE foobar
(
id INT(6) NOT NULL AUTO_INCREMENT,
category ENUM('Cat1','Cat2','Cat3','Cat4') NOT NULL,
name VARCHAR(255) NOT NULL,
PRIMARY KEY(id),
);
我有一個頁面,所有這些數據將顯示如下:
<h3>Cat1</h3>
<ul>
<li>Value1</li>
<li>Value2</li>
</ul>
<h3>Cat2</h3>
<ul>
<li>Value1</li>
<li>Value2</li>
</ul>
...
我的問題是它的效率更高,使每個類別的一個查詢將結果集限制爲一個類別... SELECT name FROM foobar WHERE category = cat1;
或者我是否應該獲取整個表SELECT category, name FROM foobar;
,然後使用PHP處理結果,然後遍歷每個類別並顯示其值。
哪個更有效率還是有另一種方法來做到這一點?
謝謝!
它通常*更有效地運行更少的查詢,但是您應該測試兩種方法並查看哪種方法更好。如果你只是簡單地傾銷整個表格,最有可能的是單個查詢會更好。 – 2011-05-13 16:16:14
你可以發佈'SELECT類別,COUNT(類別)從foobar GROUP BY類別'的輸出,並指出該數字(和分佈)是否可能會改變? – 2011-05-13 16:19:52
@ james-c現在在該特定表中少於100個項目。分佈約爲。 25/25/20/30。不過,這份名單將在未來增長。 – NightHawk 2011-05-13 16:25:55