2017-04-03 15 views
-1

所以我有一個表中有一個最小數量和最大數量的列的MySQL。當查詢具有MIN和MAX列的mysql時,如何獲得正確的數字列表?

| ID | MinNumber | MaxNumber | 
| 1 | 2   | 4   | 
| 2 | 3   | 7   | 
| 3 | 10  | 12  | 

我想得到一個包含在所有範圍內的數字列表。

所以列表應該看起來像這樣:2, 3, 4, 5, 6, 7, 10, 11, 12請注意,8和9缺失,因爲它們不在表格範圍內。

有沒有簡單的方法來獲得這個範圍?

如果有幫助,我試圖用PHP來做到這一點。編輯: 這需要運行最佳。真正的桌子有超過200,000行,範圍可以相隔數百。任何減少處理時間的方法都會有很大的幫助!

回答

0

我會查詢數據庫中的所有行。然後有一個while循環運行,直到沒有行。裏面那個while循環運行一個簡單的語句,像這樣: 爲($ I = MinNumber; $ I < MAXNUMBER; $ I ++){

然後,只需簡單地推到一個數組和while循環後打印出數組。

0

如果你的mysqli獲取 試試這個

$array=[]; 
    while($row=mysqli_fetch_array($conn, $query)){ 
     $array=array_merge($array,range($row['min'],$row['max'])); 


    } 

    asort($array); 
    print_r($array); 
+0

有沒有對查詢最初削減的方法嗎?任何方式排除已包含或重複的行? –

相關問題