您的位置:首页 > 数据库 > MySQL

仿淘宝按热度进行商品排序:参与人数最多

2015-04-24 15:30 232 查看
1.假设有两张表,一张是商品表,另外一张是商品购买明细表,
商品表存储的只是商品的属性,购买明细表则是购买的记录表,一旦产生一个购买行为,就写入此表中!

现在有个需求:在正在出售的产品中按热度进行排序(热度:即购买人数最多的产品(人数不重复 ,如小白购买了两次,则仅算为一次),)
$proids = SELECT proId   from product_detail  where proId IN(SELECT id from procuct where procuct .adStatus='A'
) GROUP BY proId count(DISTINCT(buyerId)) 

将这些商品id查找出来后,再去商品表里查询即可。

查询时假如我们只是使用  in  操作,那么得出来的顺序还是错的,假如查出来的是(3,4,1,2,5),单单使用 in 操作,查询出来的则是1,2,3,4,5了,所以还需了解多一个知识点: MySQL 查询in操作,查询结果按in集合顺序显示 

 select * from table where id IN (3,6,9,1,2,5,8,7) order by field(id,3,6,9,1,2,5,8,7); 

以上是个人对商品热度的解决办法!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql
相关文章推荐