问题背景
原来有一组被标记为推荐的商品,并且依赖标记为推荐时的推荐时间字段排序,现在需要显式管理推荐商品的顺序,添加sortIndex字段,因此需要将原有的推荐商品顺序清洗到sortIndex中,此问题的核心在于如何将时间排序映射为整数排序;
解决方案
- 代码
留个后门上线后跑一下,注意这个需要上线后才能跑,数据延迟是否会造成其他影响;
- SQL
将商品按
推荐时间顺序查询并返回行号,行号即可做为sortIndex的源数据;
SQL
查询返回行号
select (@rowno:=@rowno+1) as `sortIndex`, product.id, product.recommendTime
from `hm_shoptradeproduct` product, (Select (@rowno :=0)) temp
where recommend = 1
and onSale = 1
and storeId = 1
order by recommendTime desc
查询结果
