Php 按评论数量对产品进行排序

Php 按评论数量对产品进行排序,php,mysql,sorting,Php,Mysql,Sorting,我有一个mysql数据库 包含“产品id”、“名称”、“价格”列的表“产品” 包含“审查id”、“产品id”、“审查内容”列的表“审查” 我想检索'product_id'=123的结果,但按评论数对if进行排序。我可以使用COUNT(“review\u id”)查找特定产品的评论数量,但如何按评论数量对结果进行排序?由于您可能在查询中选择了COUNT(“review\u id”),您只需按计数添加顺序(“review\u id”)DESC在末尾。由于您可能在查询中选择了COUNT('revi

我有一个mysql数据库

  • 包含“产品id”、“名称”、“价格”列的表“产品”
  • 包含“审查id”、“产品id”、“审查内容”列的表“审查”

我想检索'product_id'=123的结果,但按评论数对if进行排序。我可以使用COUNT(“review\u id”)查找特定产品的评论数量,但如何按评论数量对结果进行排序?

由于您可能在查询中选择了
COUNT(“review\u id”)
,您只需按计数添加
顺序(“review\u id”)DESC
在末尾。

由于您可能在查询中选择了
COUNT('review\u id')
,您只需在末尾添加
ORDER BY COUNT('review\u id')DESC即可。

尝试此操作以获取所有产品和每个产品的评论数:

SELECT P.*, IFNULL(COUNT(R.product_ID),0) AS NumReviews
FROM Product AS P
LEFT JOIN Review AS R ON R.product_id = p.product_id
ORDER BY  COUNT(R.product_ID) DESC

尝试此操作以获取所有产品以及每个产品的评论数:

SELECT P.*, IFNULL(COUNT(R.product_ID),0) AS NumReviews
FROM Product AS P
LEFT JOIN Review AS R ON R.product_id = p.product_id
ORDER BY  COUNT(R.product_ID) DESC

要保存两次计数,请使用:
count('review\u id')为num\u reviews
,然后
order by num\u reviews

要保存,请使用以下命令进行两次计数:
count('review\u id')为num\u reviews
,然后
order by num\u reviews

如果您希望首先获得评论最多的产品

SELECT P.product_id, 
       IFNULL(COUNT(R.product_ID),0) as "Reviews"
FROM product as P
LEFT JOIN review as R ON P.product_ID = R.product_id
GROUP BY P.product_id
ORDER BY Review DESC;

…否则,如果您希望首先查看评论最多的产品,请使用
ASC
切换
DESC

SELECT P.product_id, 
       IFNULL(COUNT(R.product_ID),0) as "Reviews"
FROM product as P
LEFT JOIN review as R ON P.product_ID = R.product_id
GROUP BY P.product_id
ORDER BY Review DESC;
…否则,用
ASC
切换
DESC