类似查出某个机构下所有的子机构,可用递归的方式实现。但MySQL不支持递归,可以考虑用如下的方式来实现递归调用。
第一种,临时表方式,使用函数每次查出子机构,再可以和其他表联查。
第二种,新建一张表,列举出机构和子机构的关系,适合于机构数量不多的情况。
第三种,较为通用的情况。使用hierarchy,例如部级机构01,02...,省级机构01-01,02-01...,市级机构01-01-02,...
查询某个省下的所有下属机构,like 01-01%。
也可以使用下面的数字类型,部级机构01,02...,省级机构0101,0201...,市级机构010102,...。
不能直接查出所有的子机构,再用in方式来查询,SQL语句单行的长度是有限制的。递归的结果和其他表联查时,使用第三种方式就可以。
原文:http://www.cnblogs.com/lnlvinso/p/6476746.html