該SQL腳本爲MySQL會給你所有的貓的第5位。
SELECT * FROM your_table WHERE ctg_topic_id IN (SELECT DISTINCT ctg_topic_id from your_table) GROUP BY ctg_topc_id LIMIT 0,5
通過PHP。 (我省略了PHP連接代碼)
首先,獲取列表;
$stm = $pdo->preprare("SELECT DISTINCT cth_topc_id FROM my_table");
$stm->execute():
$cats = $stm->fetchAll();
$result = array();
foreach ($cats as $cat) {
$query = $pdo->prepare("SELECT * my_table WHERE cth_topic_id=? LIMIT 0,5");
$query->bindParams(1,$cat);
$pdo->execute();
$result[$i] = $query->fetchAll();
}
這種簡化的代碼應該產生含N陣列(其中,N是不同的貓的數量),其中包含在結果集的5個元素的陣列的矩陣。
我還沒有檢查代碼,所以任何提示將被更正謝謝。
一個問題是LIMIT 0,5將得到前5個項目,而不是任何邏輯。如果您想按(ORDER BY)排序('date')等。
您想如何爲每個'ctg_topic_id'選擇5條記錄? –
@Tim Biegeleisen感謝您的評論。最新的'創建'專欄。 – whitesiroi
檢查這個帖子:: http://gackoverflow.com/questions/10817103/mysql-and-php-how-to-display-only-the-first-five-rows – Gabrielo