mysql函数IFNULL的使用替换递归方法

在电商行业经常遇到的问题就是类目与类目以及类目与商品的关系。

如果要查询一级类目下的所有商品

常规做法是先查询该一级类目下所有的二级类目,再由二级类目查询所有的三级类目,直到最后一级,再查询出对应的商品。

首先想到的方法就是递归。

 

偶然发现mysql的IFNULL方法其实可以替换常规的递归方法。

先说下IFNULL方法的使用:

IFNULL的作用是什么?下面一个简单的sql和结果说明,如果IFNULL(a,b),a接收的值为null,则返回b,否则返回a;

例如:根据1级类目查询出该一级类目下所有最底层类目的id

 

这个left join几次是根据你有几层类目来定的。如果只有3层类目,则上面的c4就可以去掉。

 

这样一个sql就可以代替一个递归方法。

 

posted @   低调的小白  阅读(952)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示