2013-06-29 40 views
0

我得到了包含ID, Names, message, and time一個表,我想從表中選擇從每個ID只有一個消息查詢,目前我選擇所有郵件,這是我的代碼PHP - 如何從表中選擇一個查詢

$query= mysql_query("SELECT * FROM `table` ORDER BY `time`")or die(mysql_error()); 
while($arr = mysql_fetch_array($query)){ 
$num = mysql_num_rows($query); 
$msg = $arr['message']; 
echo '</br>'; 
echo $msg; 
} 

顯示按時間排序的所有消息,是否有一種方法可以從每個ID中僅選擇一個消息查詢?

感謝,
克勞斯

回答

3

如果你想o NLY一個消息,你可以使用LIMIT這樣

SELECT * FROM table ORDER BY time LIMIT 1 

或者,如果你想從某些ID只有一個消息,那麼你可以使用GROUP BY

SELECT * FROM table ORDER BY time GROUP BY id 
+0

謝謝!!!!!真的「GROUP BY」很有幫助,謝謝。 –

0

當然,很簡單

這將獲取所有信息給予ID:

$id = 10 //Get your id in any way you need 
$query= mysql_query("SELECT `message` FROM `table` WHERE `ID` = $id")or die(mysql_error()); 

while($arr = mysql_fetch_array($query)){ 
    $num = mysql_num_rows($query); 
    $msg = $arr['message']; 
    echo $msg; 
} 

,這將只讀取第一條消息給ID

$id = 10 
$query= mysql_query("SELECT `message` FROM `table` WHERE `ID` = $id LIMIT 1")or die(mysql_error()); 

$row = mysql_fetch_array($query)); 
if($row){ 
    $msg = $row['message']; 
    echo $msg; 
}else{ 
    echo 'no messages for id '.$id; 
} 
+0

在這裏,你寫的變量中的ID,但我需要從每個ID顯示 –

+0

對不起,我可能誤解了你的問題,所以你想只顯示一個消息表中的每個ID? 表還有每個ID有多個消息? –

+0

謝謝你,爲了幫助我,「GROUP BY」是我需要的。謝謝 –

相關問題