首页 > 数据库技术 > 详细

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

时间:2019-06-19 16:05:17      阅读:93      评论:0      收藏:0      [点我收藏+]

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

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

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

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

 

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

先说下IFNULL方法的使用:

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

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

技术分享图片

 

技术分享图片

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

 

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

 

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

原文:https://www.cnblogs.com/wang-yaz/p/11051646.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!