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);
以上是个人对商品热度的解决办法!