作者hwChang (小瀚文 大志气)
看板Database
标题[SQL ] 想要按照特定顺序捞出资料
时间Tue Apr 20 21:14:33 2010
DBMS : MySQL 5.0
最近在写一个简单的题库系统 (PHP),
制作练习题的流程如下:
(1) 捞出题库内所有题目
(2) 使用PHP的shuffle函数重新排列
(3) 取出阵列中的前10笔
使用者按下作答完毕,POST至另一页面的变数有「题目编号」与「使用者的答案」,
接着我想根据「题目编号的顺序」捞出题目的答案,
我下了一个语法 : select myAns from myTable where id in (8,5,9,1,3,2) ;
我想要按照这样(8,5,9,1,3,2) 的顺序捞出答案,但捞出的结果是 1 2 3 5 8 9
花了几个小时查资料与思考,仍无法得到结果。
我也尝试着用PHP的函数来做,不过仍徒劳无功。
在此想请教各位,我大概要往哪个方向去思考呢?谢谢。
[已解决] 方式如下:
用PHP解决了,将「题目编号阵列」与「使用者答案阵列」合并,
$newArray = array_combine(题目编号,使用者答案) ;
newArray {
题目编号 => 使用者答案
}
这样就不用管顺序而正确将答案对完,真是太好了。
虽然跟原来练习时印出的题目顺序不同,但至少还可以看到哪题做错。
谢谢版友们的帮忙。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.128.33.97
1F:推 PsMonkey:不觉得你的问题要从 sql 下手处理 04/20 21:18
2F:推 PsMonkey:终究还是要比对答案,所以在 PHP 用 hash 处理比较实在 04/20 21:18
3F:推 mervynW:我记得可以用 order by rand() limit 10 04/20 21:37
4F:→ mervynW:对答案就用回圈去对. 就不用管DB出来的顺序 04/20 21:42
5F:→ hwChang:感谢各位的帮助,解决了。 04/20 22:02
※ 编辑: hwChang 来自: 140.128.33.97 (04/20 22:06)