zoukankan      html  css  js  c++  java
  • 封装sql语句中in限制查询个数的方法

        /*  
         * 此方法用于每天凌晨取前一天的回滚用户账号
         */
        public function getRollBackAccount($startTime,$endTime){
            
            //1.首先查询出当天的新增的用户账号    
            $sql_account = "SELECT DISTINCT `accountName`,`mTime` FROM `t_log_register` WHERE `mTime`>='{$startTime}' AND `mTime`<='{$endTime}'";
            $day_account = fetchRowSet($sql_account);
    
            foreach ($day_account as $key => $account) {
                $arr[] = $account['accountName'];    
               }
    
            // 统计回滚用户的时间范围限制两个月内  
            //$two_months_before_time = strtotime(date("Y-m-d", strtotime("-2 month")));
            $now_end_time = $endTime-86400;
            // 批量查询限制
            $count_account = count($arr);
            $base = 10;
            $group = floor($count_account / $base);
            for ($i=0; $i <= $group; $i++) { 
                echo  '<br>group: ' . $i . "<br>";
                $group_account = '';
                for ($j=0; $j < $base; $j++) { 
                    $key = $i * $base + $j;
                    if($key < $count_account) {
                        $group_account .= "'" . $arr[$key] . "',";
                    }
                }
                $group_account = rtrim($group_account, ',');
    
                $sql_all_account = "SELECT DISTINCT `accountName`,`agentId`,`serverId`,`platform`,`mTime` FROM `t_log_register` WHERE `accountName` in ({$group_account}) AND `mTime` < '{$now_end_time}' ";
                $all_account = fetchRowSet($sql_all_account);    
    
                   if(!empty($all_account)){
                      break;
                   }     
            }
         
            $arr_account = array();
               foreach ($all_account as $key => $before_account) {
                   $arr_account[$key]['agentId'] = $before_account['agentId'];
                   $arr_account[$key]['serverId'] = $before_account['serverId'];
                   $arr_account[$key]['platform'] = $before_account['platform'];
                $arr_account[$key]['accountName'] = $before_account['accountName'];
                   $arr_account[$key]['mTime'] = $before_account['mTime'];    
               }
               return $arr_account;    
        }
  • 相关阅读:
    实现只有0,1,2三种元素的乱序数组的排序
    请说明Request和Session的生命周期
    使用Enumeration和Iterator遍历集合类
    hive中分组取前N个值的实现
    世界知名网站的技术实现(转)
    蚂蚁变大象:浅谈常规网站是如何从小变大的(转)
    Hadoop管理员的十个最佳实践(转)
    internet笔记
    Instagram 架构分析笔记(转)
    Apache Pig入门 –介绍/基本架构/与Hive对比(转)
  • 原文地址:https://www.cnblogs.com/lonmyblog/p/8277440.html
Copyright © 2011-2022 走看看