MySQL递归的替代方案

  类似查出某个机构下所有的子机构,可用递归的方式实现。但MySQL不支持递归,可以考虑用如下的方式来实现递归调用。

      第一种,临时表方式,使用函数每次查出子机构,再可以和其他表联查。

      第二种,新建一张表,列举出机构和子机构的关系,适合于机构数量不多的情况。

      第三种,较为通用的情况。使用hierarchy,例如部级机构01,02...,省级机构01-01,02-01...,市级机构01-01-02,...

                查询某个省下的所有下属机构,like 01-01%。

                也可以使用下面的数字类型,部级机构01,02...,省级机构0101,0201...,市级机构010102,...。

     

      不能直接查出所有的子机构,再用in方式来查询,SQL语句单行的长度是有限制的。递归的结果和其他表联查时,使用第三种方式就可以。

原文地址:https://www.cnblogs.com/lnlvinso/p/6476746.html