码迷,mamicode.com
首页 > 数据库 > 详细

mysql in 查询优化

时间:2014-11-29 21:34:45      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   sp   for   on   数据   

2014年11月29日21:01:01

场景:有的时候查询数据库的select in 语句中会有非常多不连续的数值,会很影响查询效率

方法:将select in 查询转换成多个select between and 语句

代码:核心代码(id要排过顺序)

 1     public function group()
 2     {
 3         // $a = array(1,2,3,5,7,8,9);
 4         $a = array(1,3,4,5,7,8,9);
 5         $len = count($a);
 6         $cur = 0; //当前遍历元素的下标
 7         $pre = $a[0]; //前一个元素的值
 8 
 9         $new = array(‘0‘ => array($a[0]));
10         for ($i = 1; $i < $len; $i++) {
11             if (($a[$i] - $pre) == 1 ) {
12                 $new[$cur][] = $a[$i];
13             } else {
14                 $cur = $i;
15                 $new[$cur][] = $a[$i];
16             }
17             $pre = $a[$i];
18         }
19 
20         print_r($new);
21     }

//结果

 1 Array
 2 (
 3     [0] => Array
 4         (
 5             [0] => 1
 6         )
 7 
 8     [1] => Array
 9         (
10             [0] => 3
11             [1] => 4
12             [2] => 5
13         )
14 
15     [4] => Array
16         (
17             [0] => 7
18             [1] => 8
19             [2] => 9
20         )
21 
22 )

 

mysql in 查询优化

标签:style   blog   io   ar   color   sp   for   on   数据   

原文地址:http://www.cnblogs.com/iLoveMyD/p/4132011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!