该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