專做系統家具、系統櫃
客製化流暢舒適居家,免費估價規劃
拆除全系列活動百葉窗.防火安全門.氣密隔音窗
堅固耐用.工廠直營.歡迎洽詢

首頁  •  tw 論壇 • 程式設計討論     • 

[問題]怎麼刪除資料庫所以資料只留30筆

房東:風兒
發表時間:2009-11-12
[檢舉]


我是用這段刪除資料庫所以資料 $sql_delete = \"delete from bad \";

可是現在有個問題
如果我資料庫現在有80筆資料
但是我要刪除50筆資料留下最新的30筆要怎麼寫?



  • 贊助網站       

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!

  • 1 樓住戶:達人
    發表時間:2009-11-12
    [檢舉]

    $sql="DELETE FROM table ORDER BY sn ASC LIMIT ".$delnum;
    $delnum就是你要刪除的筆數,你可以先經由查詢取得要刪除的筆數填進去。
    另外,ORDER BY 欄位 ASC是正排序,所以他會把你的sn由小排到大之後,去刪除最小的$delnum筆數。
    反過來說,如果指令改成ORDER BY 欄位 DESC的話。
    他會把你的SN反過來由大排到小,然後刪除最大的$delnum筆數。
    這樣子你就可以自由的決定要刪除的筆數數量。
    我剛剛試了一下,這個方式基本上不會發生誤刪。
    除非你沒有去定義id或sn排序(主鍵值為自動累加的唯一鍵值)
    這個方式也不用去管是什麼時間加入的資料,他只會針對資料的「筆數」去處理。

    include "config.php";
    $query = "select * from $onlinetable";
    $result=mysql_query($query);
    $row = @mysql_num_rows($result); //取得資料筆數

    if ($row >30){
    $delnum = $row -30;
    $sql="DELETE FROM $onlinetable ORDER BY id ASC LIMIT ".$delnum;
    mysql_query($sql);
    }

    ?>



     共 1 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容: