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