Mysql 如何在单个查询中获取计数和记录

Mysql 如何在单个查询中获取计数和记录,mysql,Mysql,我有一个由用户图片组成的图片表 Table Name:picture Columns: picture_id primary key,auto increment user_id INT foreign key path VARCHAR(75) 用户id1由50个图像组成,我首先希望20个图像路径符合图片id 以及用户id的所有图像的count,即20记录和count=50 在单个查询中使用。这有点复杂,但您可以通过子查询或联接来完成 一种可能性是:

我有一个由用户图片组成的图片表

Table Name:picture
Columns: picture_id primary key,auto increment
         user_id   INT  foreign key
         path VARCHAR(75)
用户id
1
50个
图像组成,我首先希望
20个
图像路径符合
图片id
以及用户id的所有图像的
count
,即
20
记录和
count
=
50

在单个查询中使用。

这有点复杂,但您可以通过子查询或联接来完成

一种可能性是:

select picture_id, 
  (select count(*) from pictures p1 where p1.user_id = pic.user_id) as num_pics
  from picture pic
  where pic.user_id = 1
  order by picture_id
  limit 20;

为什么不在处理结果集时获取所有记录并用PHP进行运行计数呢?我发布了一个答案,其中提到了
SQL\u CALC\u FOUND\u ROWS
,但它使用了两个查询,因此没有真正回答您的问题。更多信息,请查看。@RajneelJoshi如果您认为这是您问题的最佳答案,我认为您有责任将其标记为正确答案!;-)