2013-10-26 52 views
0

我有一個數據庫表'stu_inf'o與列'stu_id(主鍵)','名稱(varchar)''grade_id(外鍵)'和'年齡(int )」。如何一次更改所有學生的gradelevels

grade_level表具有以下列:grade_level_id(主鍵)和grade_level(varchar)。

我已爲所有學生分配了grade_id。在年底,grade_level將不得不更改爲下一個grade_id。例如,全部1將必須變爲2,並且全部2至3等等。

在數據庫中手動更改這些內容將非常耗時,並且很容易出現像grade_id跳過這樣的錯誤,並且根本不會移動某些學生。

如何使用php和mysql自動實現這一點。

回答

1

查詢更新所有年級的將是:

UPDATE stu_info SET grade_id = grade_id + 1 

這將更新所有記錄。

1

UPDATE stu_int SET grade_id = grade_id + 1 WHERE grade_id < X

(x是你最大grade_level_id),這將允許您更新表,即使學生已經達到了最高等級水平,而不會引起國外重點違規。您也可以直接刪除誰已經達到了最高年級學生:

UPDATE stu_info SET grade_id = grade_id + 1

DELETE FROM stu_int WHERE grade_id = X

+0

這是有幫助的。但是如果我想在學年結束時更新,該怎麼辦?我有start_date(varchar)和end_date(varchar)。我該如何編寫php代碼,以便在end_date啓動時更新stu_int SET grade_id = grade_id + 1 WHERE grade_id user2922839

相關問題