2013-03-18 36 views
0

我跑像限制MySQL的結果給許多第一組

("SELECT size FROM block WHERE block_model = '".$_SESSION['block']."'") 

查詢這讓我想了一系列的成果

大大方方大中中中小小小

是否有某種方法可以將每個「集合」限制爲只有其第一個結果,這樣除了編輯我的數據庫結構外,我最終只有1個大,1箇中等,1個小?

回答

3

看看在MySQL中DISTINCT關鍵字。

"SELECT DISTINCT size 
FROM block 
WHERE block_model = '" . $_SESSION['block'] . "'" 

根據您的MySQL版本,你的表是如何設置,您還可以使用GROUP BY子句潛在更好的性能。

"SELECT size 
    FROM block 
    WHERE block_model = '" . $_SESSION['block'] . "' 
    GROUP BY size" 
+0

感謝您提供有關GROUP BY的信息,非常方便。 – 2013-03-18 03:09:26

2

嘗試添加DISTINCT只獲得唯一的記錄

$sessionVal = $_SESSION['block']; 
$query = "SELECT DISTINCT size FROM block WHERE block_model = '$sessionVal'"; 
+0

哦,這太神奇了,我從來不知道DISTINCT。謝謝! – 2013-03-18 02:57:55

+0

不客氣':D'你可能想使用'PDO'或'MySQLi'也 – 2013-03-18 02:58:33

+0

是的,已經使用PDO。瞭解到Stackoverflow對我仍然使用mysql_ *函數時大喊大叫哈哈! – 2013-03-18 02:59:15