2
我爲每條消息製作了一個具有唯一標識的消息傳遞系統,還有一個用於保持相關線程綁定/鏈接的類別。我有存儲在數組中的類別,我可以用這個mysql查詢顯示每條消息。SELECT WHERE group id IN array ORDER BY and Group By
$getid = $link->prepare("SELECT * FROM `table` WHERE
category IN ('$array')
ORDER BY id DESC");
$getid->execute();
while($msg=$getid->fetch()) {
echo "<br />".$msg['id'];
}
上面的代碼成功地輸出了數組中列出的類別ID中的每條消息。我試圖只顯示最近列出的,即每個類別中具有最大ID的消息。
我嘗試了按類別失敗的組,它給了我不正確的結果。
$getid = $link->prepare("SELECT * FROM `table` WHERE
category IN ('$array')
GROUP BY category
ORDER BY id DESC");
$getid->execute();
while($msg=$getid->fetch()) {
echo "<br />".$msg['id'];
}
使用MAX(ID)
$getid = $link->prepare("SELECT MAX(id) FROM `table` WHERE
category IN ('$array')
ORDER BY id DESC");
$getid->execute();
while($msg=$getid->fetch()) {
echo "<br />".$msg['id'];
}
我曾嘗試多種變化,不勝枚舉這裏闡述也失敗了。我試圖在任何給定的類別中顯示最新的消息(最後一個id),最近顯示在最上面。
那麼當你的意思是最大的id你是指一個單項還是其中的很多?什麼是最近的?分鐘,幾小時,幾天?我會考慮使用日期。所以你可以選擇*從表中的貓在$數據和現在() - 5天> message_date_field。這個語法是incorect,但idean在那裏。 – MadeInDreams