2013-09-01 28 views
1

是否有可能在sqlite android中洗牌一列的數據? 我有兩列從中我想在安卓如何在sql中洗牌一列的數據?

num  alph 
------------ 
1  a 
2  b 
3  c 
4  d 

洗牌SQLite中alphclick event這是我的代碼

public class MainActivity extends Activity { 
SQLiteDatabase db; 
String a,c; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    db=openOrCreateDatabase("dat", MODE_PRIVATE, null); 
    db.execSQL("CREATE TABLE IF NOT EXISTS rk(num integer,alph char);"); 
    db.execSQL("INSERT INTO rk VALUES('1','a');"); 
    db.execSQL("INSERT INTO rk VALUES('2','b');"); 
    db.execSQL("INSERT INTO rk VALUES('3','c');"); 
    db.execSQL("INSERT INTO rk VALUES('4','d');"); 
    db.execSQL("INSERT INTO rk VALUES('5','e');"); 
} 
public void disp(View view){ 
    EditText ed; 
    ed=(EditText)findViewById(R.id.editText1); 
    a=ed.getText().toString(); 
    Cursor b=db.rawQuery("SELECT alph FROM rk WHERE num='a';",null); 
    //System.out.println(b.getString(0)); 

    c=b.toString(); 
    System.out.println("a2"); 
    System.out.println(c); 
    Builder builder=new AlertDialog.Builder(MainActivity.this); 
    builder.setMessage(c); 
    AlertDialog alert=builder.create(); 
    alert.show(); 
} 
+1

什麼你的意思是洗牌'alph'?如果要顯示在視圖中混排的'alph'數據,則應該在視圖層而不是數據庫層執行此操作。 –

+0

我想修改db中的數據... –

回答

1

你的意思是得到一個隨機排出來的呢?在MySQL中,你將完成由:

select alph from rk order by rand() limit 0,1 

我認爲這將SQL SQLite中的工作,以及在相同或類似的形式。如果你想以隨機順序中的所有行,只是刪除了「限0,1」的部分,如:

select alph from rk order by rand() 
0
SELECT * FROM table ORDER BY RANDOM() 
0

select * from tablename order by random() //記得蘭特()是不是有sqllite使用隨機而不是