• mysql 实现 start with


    自己写service----> 传入map(idsql,rssql,prior)   idsql 查询id   rssql 查询结果集    调用 以下方法

    @param ids 要查询的起始 start with
    * @param allres 包含要递归数据的结果集 ( 查询时别名ID PID )
    * @param pos prior---> UP or DOWN
    * @return
    */
    public static List<Map<String, Object>> getTree(ArrayList<String> ids,
    List<Map<String, Object>> allres,String pos) {
    List<Map<String, Object>> res=new ArrayList<Map<String,Object>>();

    if("up".equals(pos)){
    res=toCreatTreeUp(ids,allres,res);
    }
    if("down".equals(pos)){
    res=toCreatTreeDown(ids,allres,res);
    }
    return res;
    }
    private static List<Map<String, Object>> toCreatTreeUp(ArrayList<String> ids,
    List<Map<String, Object>> allres,List<Map<String, Object>> res) {
    ArrayList<String> idss = new ArrayList<String>();
    for(String id :ids){
    for (Map<String, Object> map : allres) {
    if(id.equals(map.get("ID").toString())){
    idss.add(map.get("PID").toString());
    res.add(map);
    }
    }
    }
    if (idss.size()!=0) {
    ids = idss;
    res = toCreatTreeUp(ids,allres,res);
    }
    return res ;
    }
    private static List<Map<String, Object>> toCreatTreeDown(ArrayList<String> ids,
    List<Map<String, Object>> allres,List<Map<String, Object>> res) {
    ArrayList<String> idss = new ArrayList<String>();
    for(String id :ids){
    for (Map<String, Object> map : allres) {
    if(id.equals(map.get("ID").toString())){
    res.add(map);
    }
    if(id.equals(map.get("PID").toString())){
    idss.add(map.get("ID").toString());
    }
    }
    }
    if (idss.size()!=0) {
    ids = idss;
    res = toCreatTreeDown(ids,allres,res);
    }
    return res ;
    }

  • 相关阅读:
    .Net Core中使用WebSocket
    mysql运用in查询有序集合时,可用field关键字
    TrueNAS使用教程
    kvm总结(6) : 桥接网络和nat网络
    TrueNAS下载和制作U盘启动教程
    Sonar社区版容器安装及C++支持
    看哈axios的封装
    QT validater
    解决windows10没有“连接到无线显示器”选项
    lua 指定require路径
  • 原文地址:https://www.cnblogs.com/sx2zx/p/6229260.html
Copyright © 2020-2023  润新知