作者BBSealion (海獅)
看板Database
標題[SQL ] 有關資料排序和更動
時間Sat Apr 27 21:39:23 2013
最近遇到一個問題
先敘述一下我遇到的狀況:
我們在做一個教學系統
老師會開一些章節名稱,每個章節上面出很多題目,存到資料庫
但因為老師不一定會照順序出,所以資料紀錄的順序,和章節順序會不同
於是學生那先下載時,去資料庫上面拉老師的章節名稱還有題目,順序就亂掉了
我想到一個方法是:老師再另外存一個"章節名稱順序"上去,學生端拿到再去對照
但這樣就要多存一欄重複資訊感覺挺笨的,而且學生端那邊去比對這個的code也很醜
我比較想要的是:
老師每次上傳題目,資料庫端就根據"老師預設好的章節順序"重新排序一次
這樣學生端就只要顧著拉資料就好。
我找到方法是 SELECT * FROM `questions` ORDER BY FIELD(題目類別,
"Lesson1","Lesson2",...,"Mock Test1","Mock Test2",..);
但問題是...
這樣排序完只是給你看一下而已,並不會真的Update資料庫。
我google半天找不到可以真的update資料庫排序的方法,是這樣操作資料庫很不合理嗎?
(例如SQL這樣運算太耗資源?)
請問有甚麼好方法達成我的需求呢?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.61.45
1F:→ chenstin:請問你的意思是,要update成用SELECT * FROM `questions` 04/27 22:58
2F:→ chenstin:出來的結果的排序就是依照設定好的章節順序,這樣嗎? 04/27 22:59
3F:→ BBSealion:啊 是我已知章節順序 但我要怎樣操控資料庫照這個順序排 04/28 10:11
4F:→ BBSealion:要真的update資料庫,而不是只有秀一下給我看而已 04/28 10:12
5F:→ astt88:多存一個sort欄位存放要排序的順序 05/18 18:22
6F:→ astt88:若有Order by的順序,直接顯示Order by的結果不行嗎? 05/18 18:25
7F:→ astt88:其實不需要資料順序=章結順序,這樣Update反而很奇怪 05/18 18:33
8F:→ astt88:而且你的Select語法看起來有點怪,Table開得有點怪的感覺 05/18 18:37
9F:→ astt88:資料表有正規化嗎? 05/18 18:38