Php 按评论数量对产品进行排序
我有一个mysql数据库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
- 包含“产品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