合法優良搬家公司 價格透明,合約保障真安心 | 專業居家清潔 免費到府估價,清潔養護馬上搞定 |
[問題]怎麼刪除資料庫所以資料只留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); } ?> |