不链表实现按照商品销量排序,排序字段在另一张表

查询可以用 with 实现,排序就不好处理了,感觉很多场景都需要跨表排序,这样岂不是必须要链表,有没有搞过的大神指点下

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 27

不去连表获取排序字段,那就先根据排序获取到对应商品的顺序,然后用 find_in_set ("id",'2,3,4,1') 去排序

1年前 评论
彭彭 (楼主) 1年前
小猪蹄子 (作者) 1年前
小猪蹄子 (作者) 1年前
彭彭 (楼主) 1年前
彭彭 (楼主) 1年前
小猪蹄子 (作者) 1年前
小猪蹄子 (作者) 1年前
bishi123 1年前

不用 with 用 join 呗。

我问一下,这种需求对应的原生 SQL 写的出来吗?

1年前 评论
彭彭 (楼主) 1年前
bishi123 1年前
L学习不停 (作者) 1年前

那就增加冗余字段,创建订单后异步更新商品销量字段

1年前 评论
彭彭 (楼主) 1年前
bishi123 1年前
Imuyu (作者) 1年前
sanders

要不把销量写在商品表里,定期或通过事件进行更新,再排序不就简单了。

1年前 评论
彭彭 (楼主) 1年前
sanders (作者) 1年前
bishi123 1年前
sanders (作者) 1年前

不知道你具体场景,既然排序字段在另外一张表,干嘛不用那张表,然后 with 出商品信息?

1年前 评论
小猪蹄子 1年前

结案了吗,最终解决办法是什么?

1年前 评论
彭彭 (楼主) 1年前
Squ1rrel

如果总是跨表高频率查询,是不是考虑表架构设计有问题了

反正从算法设计的角度,跨域做事情,时间很容易时间爆炸

看看能不能 cache 高频率的查询部分,或者增加字段做 cache

1年前 评论