作者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