php - 查找最近 n 个帖子中的用户帖子数

标签 php mysql

我正在尝试找到最有效的方法来查找表的最后 n 行中用户的帖子数。我试过了

$db->query_first("SELECT COUNT(*) AS
user_recent_posts FROM " . TABLE_PREFIX . "post WHERE userid = $userid
AND threadid = '" . $threadinfo['threadid'] . "' AND visible = '1'
ORDER BY dateline DESC LIMIT 10" );

我正在尝试获取线程中最后 10 个帖子中的用户帖子 .. 但这显然会返回用户的最后 10 个帖子,无论它们是否在最后 10 个帖子中

最佳答案

使用子选择首先获取 n 行,然后计算用户的行数:

$db->query_first("
  SELECT COUNT(b.*) AS user_recent_posts 
  FROM (
    SELECT a.* 
    FROM " . TABLE_PREFIX . "post a
    AND a.threadid = '" . $threadinfo['threadid'] . "' AND a.visible = '1'
    ORDER BY a.dateline DESC LIMIT 10) b
  WHERE b.userid = $userid" );

关于php - 查找最近 n 个帖子中的用户帖子数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854334/

相关文章:

php - 生成带有扭曲的数字字母组合的算法

mysql - 使用 Eloquent whereNotIn 时查询非常慢

mysql - 使用命令 MySql 查询

php - WHERE 语句 SQL 不起作用

php - 显示列表中状态为 "user"或 "admin"的所有用户

php - "laravel.log"无法打开 : failed to open stream

php - 根据购物车数量仅显示一种运费

php - 无法登录 - Laravel 5.3 - Cloudways 应用程序

MySQL,按字符对整数字符进行排序

php bool 运算导致500错误