Php 计算SQL表中每个不同值的数量
我想知道是否有一种简单的方法可以得到我有多少行不同的值(我知道这是错误的解释) 示例:我有一个表,它为我的博客文章注册视图。我想数一数,有多少人看了a篇文章,有多少人看了b篇文章(我有很多文章,我想获得前十名最受欢迎的文章) 有没有一种简单的方法可以用SQL来实现这一点,目前我用php数组来实现,我得到数组中所有不同的行,然后我得到每个数组值的行数,然后我对数组进行排序并返回前10个,但这太多了,我想知道,是否有办法用一个查询来实现这一点Php 计算SQL表中每个不同值的数量,php,mysqli,Php,Mysqli,我想知道是否有一种简单的方法可以得到我有多少行不同的值(我知道这是错误的解释) 示例:我有一个表,它为我的博客文章注册视图。我想数一数,有多少人看了a篇文章,有多少人看了b篇文章(我有很多文章,我想获得前十名最受欢迎的文章) 有没有一种简单的方法可以用SQL来实现这一点,目前我用php数组来实现,我得到数组中所有不同的行,然后我得到每个数组值的行数,然后我对数组进行排序并返回前10个,但这太多了,我想知道,是否有办法用一个查询来实现这一点 select a.article_id, a.t
select
a.article_id,
a.title,
a.date,
/* Make sure to count a relevant view from the *views* table.
-- This makes sure that count returns 0 instead of 1 when
-- the article isn't viewed yet. */
count(v.article_id) as viewcount
from
Article a
/* Using left join here, to also include articles that are not viewed at all.
-- You can change this to an inner join if you don't want to include those. */
left join ArticleView v on v.article_id = a.article_id
group by
/* Group by article id, so count() actually counts per article. */
a.article_id
order by
/* Place the best viewed articles on top. */
count(v.article_id) desc
/* And return only 10 articles at most. */
limit 10
此查询将返回10篇文章,即使没有10篇文章有视图。如果只想返回实际具有视图的项目,而不需要项目表中的其他字段,可以稍微简化查询:
select
v.article_id,
count(v.article_id) as viewcount
from
ArticleView v
group by
v.article_id
order by
count(v.article_id) desc
limit 10
但是第一个查询的优点是,您还可以将'a'
的其他字段添加到查询结果中,如标题。因此,这个查询实际上可以返回生成整个top-10列表所需的所有信息,而第二个查询只提供ID列表
此查询将返回10篇文章,即使没有10篇文章有视图。如果只想返回实际具有视图的项目,而不需要项目表中的其他字段,可以稍微简化查询:
select
v.article_id,
count(v.article_id) as viewcount
from
ArticleView v
group by
v.article_id
order by
count(v.article_id) desc
limit 10
但是第一个查询的优点是,您还可以将'a'
的其他字段添加到查询结果中,如标题。因此,这个查询实际上可以返回生成整个top-10列表所需的所有信息,而第二个查询只提供ID列表
此查询将返回10篇文章,即使没有10篇文章有视图。如果只想返回实际具有视图的项目,而不需要项目表中的其他字段,可以稍微简化查询:
select
v.article_id,
count(v.article_id) as viewcount
from
ArticleView v
group by
v.article_id
order by
count(v.article_id) desc
limit 10
但是第一个查询的优点是,您还可以将'a'
的其他字段添加到查询结果中,如标题。因此,这个查询实际上可以返回生成整个top-10列表所需的所有信息,而第二个查询只提供ID列表
此查询将返回10篇文章,即使没有10篇文章有视图。如果只想返回实际具有视图的项目,而不需要项目表中的其他字段,可以稍微简化查询:
select
v.article_id,
count(v.article_id) as viewcount
from
ArticleView v
group by
v.article_id
order by
count(v.article_id) desc
limit 10
但是第一个查询的优点是,您还可以将
'a'
的其他字段添加到查询结果中,如标题。因此,这个查询实际上可以返回生成整个top-10列表所需的所有信息,而第二个查询只提供ID列表。使用sql分组很容易
select articleid, count(*) from view_table group by articled
显然,您需要更改表和字段。使用sql分组很容易
select articleid, count(*) from view_table group by articled
显然,您需要更改表和字段。使用sql分组很容易
select articleid, count(*) from view_table group by articled
显然,您需要更改表和字段。使用sql分组很容易
select articleid, count(*) from view_table group by articled
显然,您需要更改表和字段。表是什么样子的?表是什么样子的?表是什么样子的?表是什么样子的?表是什么样子的?