2012-11-12 112 views
0

我将把sql查询结果分为两部分。之所以我想这样做是因为我只想让我的服务器首先处理20个项目,然后在sleep之后处理其余部分。如何将sql查询结果分成小部分

怎么可能在sql中将查询分为多个查询后mysql_query以便我可以分开处理一个又一个的部分?

我的愿景是:

if(mysql_row_nums($sql)>20){ 
    handle only 20 items 
} else { 
    handle all 
} 

感谢您的阅读。

+0

是否SQL'LIMIT'条款你想要做什么? – Barmar

+0

有一件事叫'LIMIT' – Raptor

回答

2

您可以通过查询

限制设置limit 0,20做,这是用来限制你的MySQL查询结果那些落在指定的范围内。您可以使用它显示第一个X数量的结果,或显示X - Y结果的范围。

+0

我只想查询一次,并得到所有查询并将其分成两部分,所以在AFTER mysql_query之后,有可能吗? – doniyor

+0

当你通过mysql_fetch_array得到数组时,你可以通过[count](http://php.net/manual/en/function.count.php)来计算数组中元素的个数,而不是你知道总体情况并且做一些类似于mohammad艾哈迈德说 –

+0

好的谢谢你! :D – doniyor

1

退房的SQL限制参数: LIMIT

1

尝试

if(mysql_num_rows($sql)>20){ 
    $i = 0; 
    while($result = mysql_fetch_array($sql)){ 
     $i++; 
     if($i <= 20){ 
      // do some thing with first 20 result 
      var_dump($result); 
     } 
     if($i == 20){ 
      // if we have arrived to result #20 stop excuting script for minute 
      sleep(60); // 60 = 1 minute ; 
     } 
     if($i > 20){ 

      // continue dealing with result after first 20 result. 
     } 
    } 
} 
+0

一个关闭''}''是不是对的? – doniyor

+0

做得非常好! +1! – doniyor

+0

我做了一些编辑,请重新检查,我试图用更好的方式解释代码 –