2010-11-17 49 views

回答

0
$lcv = 0; 
$row_to_delete = x; 

$result = mysql_query("SELECT * FROM table"); 

while($row = mysql_fetch_array($result){ 
    if($lcv == $row_to_delete){ 
      mysql_query("DELETE"); 
    } 

    $lcv++; 
} 
+0

謝謝Jose ......這似乎是令人滿意的... – Kailash 2010-11-17 16:15:06

4

你可以,如果你正在使用MySQL ^^

編輯在DELETE要求使用LIMIT:對不起,這是不夠的

MySQL特定的極限ROW_COUNT選項刪除告訴服務器的最大數量在控制返回給客戶端之前要刪除的行。這可以用來確保給定的DELETE語句不會花費太多時間。您可以簡單地重複DELETE語句,直到受影響的行數小於LIMIT值。

+0

這如果OP確實使用是首選的解決方案MySQL的。 – 2010-11-17 15:53:52

+0

這就是爲什麼我確定它。我不知道其他DBMS。 – MatTheCat 2010-11-17 15:55:09

+0

是的,我在說abt MySQL – Kailash 2010-11-17 15:56:10

4

我不認爲這在MySQL中是可能的。您所遇到的問題是,根據數據的排序方式,行號是主觀的。如果您按升序排列第1列的數據,然後按第1列按降序排列,即排第1列?

最好你的表應該有主鍵ID字段,你可以在其中指定它們來刪除。

DELETE FROM *table* WHERE id = *id* 
+0

+1:就我個人而言,我認爲這是一個更好的解決方案,即使它不是嚴格的OP要求。 – Powerlord 2010-11-17 16:01:03

+0

我同意,我只是認爲OP有充足的理由這樣做。 – MatTheCat 2010-11-17 16:03:27