Php 如何根据不同的条件从表中获取行计数

Php 如何根据不同的条件从表中获取行计数,php,mysql,Php,Mysql,我有一个名为posts的表,其中包含id、post、status等字段。。 我想创建一个查询,通过帖子的状态获取帖子数量,如下所示 ------------------------------ | published | draft | trash | ------------------------------ | 150 | 15 | 0 | ------------------------------ 请帮助我: SELECT status, COUNT(

我有一个名为posts的表,其中包含id、post、status等字段。。 我想创建一个查询,通过帖子的状态获取帖子数量,如下所示

------------------------------
| published | draft  | trash | 
------------------------------
| 150       |  15    |  0    |
------------------------------
请帮助我:

SELECT status, COUNT(*) count FROM posts GROUP BY status
这更为典型,并将为您提供以下信息

-----------------------
| status    | count   | 
-----------------------
| published |  150    |
-----------------------
| draft     |  15     |
-----------------------
| trash     |  0      |
-----------------------
如果你想要的正是你要的那张桌子,那就去吧

SELECT SUM(CASE status WHEN 'published' THEN 1 ELSE 0 END) published,
    SUM(CASE status WHEN 'draft' THEN 1 ELSE 0 END) draft,
    SUM(CASE status WHEN 'trash' THEN 1 ELSE 0 END) trash
FROM posts 
这更为典型,并将为您提供以下信息

-----------------------
| status    | count   | 
-----------------------
| published |  150    |
-----------------------
| draft     |  15     |
-----------------------
| trash     |  0      |
-----------------------
如果你想要的正是你要的那张桌子,那就去吧

SELECT SUM(CASE status WHEN 'published' THEN 1 ELSE 0 END) published,
    SUM(CASE status WHEN 'draft' THEN 1 ELSE 0 END) draft,
    SUM(CASE status WHEN 'trash' THEN 1 ELSE 0 END) trash
FROM posts 
这更为典型,并将为您提供以下信息

-----------------------
| status    | count   | 
-----------------------
| published |  150    |
-----------------------
| draft     |  15     |
-----------------------
| trash     |  0      |
-----------------------
如果你想要的正是你要的那张桌子,那就去吧

SELECT SUM(CASE status WHEN 'published' THEN 1 ELSE 0 END) published,
    SUM(CASE status WHEN 'draft' THEN 1 ELSE 0 END) draft,
    SUM(CASE status WHEN 'trash' THEN 1 ELSE 0 END) trash
FROM posts 
这更为典型,并将为您提供以下信息

-----------------------
| status    | count   | 
-----------------------
| published |  150    |
-----------------------
| draft     |  15     |
-----------------------
| trash     |  0      |
-----------------------
如果你想要的正是你要的那张桌子,那就去吧

SELECT SUM(CASE status WHEN 'published' THEN 1 ELSE 0 END) published,
    SUM(CASE status WHEN 'draft' THEN 1 ELSE 0 END) draft,
    SUM(CASE status WHEN 'trash' THEN 1 ELSE 0 END) trash
FROM posts 
选择published,COUNT*FROM posts WHEREpublished=150

选择已发布,从帖子中计数*

选择已发布,从发布的帖子中计算*150

选择已发布,从帖子中计数*

选择已发布,从发布的帖子中计算*150

选择已发布,从帖子中计数*

选择已发布,从发布的帖子中计算*150


选择已发布,从帖子中计数*

完美的解决方案,如您所示:

**

**

请注意,您的表结构应如下所示:


完美的解决方案,如您所示:

**

**

请注意,您的表结构应如下所示:


完美的解决方案,如您所示:

**

**

请注意,您的表结构应如下所示:


完美的解决方案,如您所示:

**

**

请注意,您的表结构应如下所示:


就是这样。你救了我:就是这样。你救了我:就是这样。你救了我:就是这样。您保存了我:选择SUMmain_a.published,SUMmain_a.draft,SUMmain_a.trash,如果状态为'published',计数,0为published,如果状态为'draft',计数,0为draft,如果状态为'trash',计数*,0为posts组中的垃圾_a@DeepakKumar,IMHO,这看起来像一个答案,不是评论。是的,我已经在答案中发布了它,但你们不介意,这就是为什么我评论,这是完美的答案,因为你们想在上面显示的结果。你能接受我的回答吗?选择SUMmain_a.published,SUMmain_a.draft,SUMmain_a.trash FROM选择如果状态为'published',计数,0为published,如果状态为'draft',计数,0为draft,如果状态为'trash',计数*,0为posts GROUP BY status main中的垃圾_a@DeepakKumar嗯,这看起来像个答案,不是评论。是的,我已经在回答中发布了它,但你们不介意,这就是我评论的原因,这是一个完美的答案,因为你们想在上面显示结果。你能接受我的回答吗?选择SUMmain_a.published,SUMmain_a.draft,SUMmain_a.trash FROM选择如果状态为'published',计数,0为published,如果状态为'draft',计数,0为draft,如果状态为'trash',计数*,0为posts GROUP BY status main中的垃圾_a@DeepakKumar嗯,这看起来像个答案,不是评论。是的,我已经在回答中发布了它,但你们不介意,这就是我评论的原因,这是一个完美的答案,因为你们想在上面显示结果。你能接受我的回答吗?选择SUMmain_a.published,SUMmain_a.draft,SUMmain_a.trash FROM选择如果状态为'published',计数,0为published,如果状态为'draft',计数,0为draft,如果状态为'trash',计数*,0为posts GROUP BY status main中的垃圾_a@DeepakKumar嗯,这看起来像个答案,不是评论。是的,我已经在回答中发布了它,但你们不介意,这就是我评论的原因,这是一个完美的答案,因为你们想在上面显示结果。你能接受我的回答吗。