mysql - 使用 COUNT 和 HAVING BY 的 SELECT 查询

标签 mysql sql

我如何修改下面的查询以限制从 post_list 表中获取的每个 userid 的行数,而不影响性能脚本(这里的 post_list 表超过 10,000 行)?

$sql = query("SELECT userid, post, post_id, id, username 
FROM post_list, users
WHERE post_list.userid = users.id AND post_id%4 = 0 
ORDER BY post_id"); 

我需要每个 post_list.userid 最多有 5 个帖子。

因此,如果我的 post_list 表中有 10 个用户,查询将返回 50 行。

编辑:

用户表

  id        username
   1          bill
   2          mark
   3          kate

POST_LIST 表

 post_id    userid    post 
   1           1       foo
   2           3       bar
   3           3       baz
   4           1       qux
   5           1       foo_1
   6           1       bar_1
   7           1       baz_1
   8           1       qux_1

在这里,查询应该只返回 Bill 的 5 个帖子。

此外,我需要将总行数限制为 50。

最佳答案

使用LIMIT

ORDER BY post_id LIMIT 5;

如你所评论,可以看看这篇文章here它将详细解释您,如何在 SQL 中选择每组的第一行/最少行/最大行

关于mysql - 使用 COUNT 和 HAVING BY 的 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19782254/

相关文章:

php - Zend/社交引擎模块数据库未运行

mysql - 优化大表主键搜索

c# - 使用 C# 文本框更新 Mysql 中的多列

php - MySQL PDO 计数函数返回不正确的多个 WHERE 条件

php - 编辑客户帐户时出现 Magento fatal error

php - MySQL 搜索数组中的所有元素

sql - 将多行(查询结果)传递给函数

c# - SQL Server 用户实例错误 : Existing databases has reached the max number allowed

sql - 将 Varchar 列转换为日期时间格式 - SQL Server

mysql - Sphinx 主/增量索引,sql_query_killlist