2014-11-05 70 views
1
String q="insert into ChooseRandom (Qid,Question,Option1,Option2,Option3,Option4,Answer,isImage,ImageQuestion) SELECT Qid,Question,Option1,Option2,Option3,Option4,Answer,isImage,ImageQuestion FROM model ORDER BY RAND()"; 

我正在使用上述查詢隨機化sql結果集並將隨機數據插入到新表中。這工作得很好,但是這個查詢隨機化表中的行。我需要隨機化行和列並插入到新表中。如何隨機化sql結果集(列)?

我怎樣才能做到這一點任何一個可以幫我提前解決這個

感謝enter image description here

enter image description here

比較圖像1和圖像2個選擇是隨機的,以及行是隨機的。

我怎樣才能做到這一點

+1

理解你在這裏要做的事情會很有趣。以這種方式使用數據庫似乎不是您的問題的最有效的解決方案。也許我們可以集體討論一個更好的解決方案,可能會使用不同的工具。 @Mark的 – 2014-11-05 06:17:32

+0

+1。很可能你只是想先挑選一個隨機行,然後以隨機順序顯示選項。無需在存儲器中混洗實際的數據。 – Thilo 2014-11-05 06:20:12

+0

@Mark你可以提出建議查詢 – KVK 2014-11-05 06:44:18

回答

0

其實我的問題是,我可以在MySQL中使用rand()函數隨機我的數據庫表中的數據。但我需要整理我的專欄。

我解決了我的問題,但在java中使用數組列表我只是將列值添加到列表中,並且比我拖動列表比我列表項目一個接一個地得到我所使用的代碼波紋管。

List<String> lst = new ArrayList<String>(); 

    op1=rs.getString("Option1"); 
    op2=rs.getString("Option2"); 
    op3=rs.getString("Option3"); 
    op4=rs.getString("Option4"); 

    lst.add(op1); 
    lst.add(op2); 
    lst.add(op3); 
    lst.add(op4); 

Collections.shuffle(lst); 


    op1=lst.get(0); 
    op2=lst.get(1); 
    op3=lst.get(2); 
    op4=lst.get(3); 

比我用這個值來想要什麼。