2013-04-09 74 views
1

我正在寫一個查詢來刪除Mysql中重複的前兩項條目,這可不是件容易的事情。有人請幫我解決這個問題。我遇到過如何查詢select語句而不是刪除query.Following是要求;如果表中包含大於或等於特定記錄的10個值,則刪除第一條記錄(最頂端)。以下是我的代碼。使用TOP子句刪除Mysql中的查詢?

$result = mysql_query("SELECT * FROM billinfo WHERE tableno='10'") or die(mysql_error()); 

    $num_rows = mysql_num_rows($result); 
    echo $num_rows; 

    $query2=''; 
    if($num_rows>10) 
    { 

     $query2 = mysql_query("DELETE * TOP FROM billinfo Where tableno='10')"); 
    } 
+1

MySQL文檔作爲一個旁註,MySQL的功能已被取消,您使用mysqli或PDO來代替。 http://www.php.net/manual/en/intro.mysql.php – 1615903 2013-04-09 05:30:53

回答

1

首先,你檢查$num_rows是否小於10,如果我理解正確,你想要相反的情況。

您尚未定義「頂部」的含義 - 我假定字段的最大值,因此我在查詢中將其寫爲XX

嘗試像

if($num_rows>10) { 
    $query2 = mysql_query("DELETE FROM billinfo WHERE tableno='10' ORDER BY XX DESC LIMIT 1"); 
} 

這將刪除1行(在LIMIT部分中定義),並且由於結果集是由XX DESC下令將具有最大XX值的行。

更多看到delete

+1

Thnx hexblot.How不小心粘貼了代碼。現在再編輯問題。再次。 – joy 2013-04-09 05:38:01