zoukankan      html  css  js  c++  java
  • 6.使用" union all " 拼接多条sql实际应用

    1.在实际开发中,遇到要返回一个对象List,查询时,缺少一个参数,实现的话目前我知道两个办法。一是将这个list中的对象挨个的遍历出来,每个对象所需参数都启用一次数据库查询,查出后再补充回对应位置。(参照node分类下的第一篇文章。)二是使用" union all "关键字将多条数据库语句进行拼接,最后只是用一次查询,查出结果。很明显,第一种方法,每次都需要打开数据库链接,会占用更多的服务器资源。使用第二种方法更优,以下就是实际的使用示例,供大家参考。

    /**查询粉丝或者关注的圈子称号等级其中data是数据库查出应返回的对象List */
    function getQuanziLevel(data, language, Response) {
        try {
         /*声明一个空数组,用来存储多个sql语句*/
    var per_level_sql_arr = [];
         /*确定data的长度,并利用遍历data时的下标做好对应数据的标记*/
    for (var k = 0; k < data.length; k++) { var user_id = data[k].user_id; var per_level_sql = "select {0} k_idx, hot_posts from quanzi_uinfo where usr_id = {1}"; per_level_sql_arr.push(per_level_sql.format(k, user_id)); data[k].per_level = 0; }; /**连查关注、粉丝圈子等级 */ var per_level_sqls = per_level_sql_arr.join(" union all "); mysqlOperate(per_level_sqls, function (per_level_err, per_level_rows) { if (!per_level_err) { if (0 < per_level_rows.length) { for (var l = 0; l < per_level_rows.length; l++) { var per_level_row = per_level_rows[l]; var k_idx = per_level_row.k_idx; if (myMD5.isDefine(data[k_idx])) { var hot_posts = per_level_row.hot_posts; var per_level = 0; if (hot_posts >= 5 && hot_posts < 20) { per_level = 1; } else if (hot_posts >= 20 && hot_posts < 50) { per_level = 2; } else if (hot_posts >= 50 && hot_posts < 100) { per_level = 3; } else if (hot_posts >= 100) { per_level = 4; }                  /*使用标识将值赋给对应的对象*/ data[k_idx].per_level = per_level; } } Response.end(JSON.stringify({ status: 1, data: data, message: LANG[language].queryOK })); return; } } }); } catch (e) { Response.end(JSON.stringify({ status: -1, message: "other exception" })); return; } };

  • 相关阅读:
    Prometheus监控告警浅析
    BaikalDB技术实现内幕(三)--代价模型实现
    微服务的熔断原理与实现
    2020双11,阿里巴巴集团数万数据库系统全面上云揭秘
    平行进化论再添证据 牙形刺远隔千里却发育模式相同
    如何利用设计模式改善业务代码?
    SpringBoot 无侵入式实现 API 接口统一 JSON 格式返回
    独家 | 这可能会引领通用AI的下一个重大突破
    iOS 网络优化: 使你的 App 网络交互更流畅
    Java Web整合开发(17) -- Struts 2.x 高级应用
  • 原文地址:https://www.cnblogs.com/Nick-Hu/p/9796224.html
Copyright © 2011-2022 走看看