2016-09-03 88 views
0

比方說,我在數據庫中有1000行,我想顯示950行。 我想要顯示的行應該是第一個沒有過去50個的950.那麼,如何保護最後50行? 就像這樣的查詢,但我想從ASC開始選擇從開始的行而不是從結尾。沒有最後50行的Mysql SELECT ASC

$tab= mysqli_query($con, "SELECT id,title,url FROM users ORDER by id DESC limit 50,950"); 

我需要的是1,2,4,5 ... 950從1000行(沒有最後一個限制行)。我會根據需要更改$限額,950。

謝謝。

+0

你不能刪除其中id RGriffiths

+0

@Rriffiths:顯然不是因爲幾乎所有的ID序列都包含因刪除記錄而產生的間隙 –

+0

我有15萬行,每天都有我的數據庫更新。我想從1,2,3,4 .... 14 mil開始。沒有最後的1百萬行。另外我想每次改變$ limit,每次我想要。 –

回答

0

MySQL確實允許LIMITDELETE。但是,我不相信它允許抵消。

DELETE u 
    FROM users u 
    ORDER BY id ASC 
    LIMIT 950; 

您也可以更直接地寫納入您的原始查詢:

DELETE u 
    FROM users u JOIN 
     (SELECT u2.* 
      FROM users u2 
      ORDER BY u2.id DESC 
      LIMIT 50, 950 
     ) todelete 
     ON u.id = todelete.id; 
+0

刪除不是一個問題,因爲我顯示所有結果後,使用jquery刪除行。我想要的是選擇沒有最後50個的第一行。例如50和1000。我的數據庫中有數以百萬計的行,我會在每次需要時更改$限制。所以我需要的是來自db ORDER的AS *的SELECT *(沒有最後的$限制行)。我提到了主題中的刪除,現在可能會讓人困惑。抱歉。我想要的是顯示我想要刪除的行 –

+0

@paulb。 。 。然後在第二個查詢中的子查詢做你想要的。 –

+0

這將不會排序行DESC沒有最後50?我想在沒有最後50個的情況下訂購所有的ASC行 –