2012-11-12 90 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

我做了一些編輯,請重新檢查,我試圖用更好的方式解釋代碼 –