2013-03-21 53 views
0

我通過我的SQLite數據庫從我的Android應用程序使用下面的搜索不同:數據庫的SQLite的選擇與在

的行是: ID - KEY_NUMBER - TYPE

Cursor cursor = db.rawQuery("select DISTINCT "+KEY_NUMBER+" from "+TABLE + " DESC", null);

但我只想要從KEY_NUMBER列中提取不同的值如果

TYPE column!=another value

我該怎麼做?我嘗試插入Where聲明,但它沒有奏效。

類型列可能是3個值之一:"type1","type2","type3" 我只想數量如果TYPE!="type1"或訂單條款,如果TYPE=="type2" || "type3"

+0

'TYPE'列需要與之不同? – Darwind 2013-03-21 22:14:15

+0

我剛剛編輯我的問題 – Peter 2013-03-21 22:17:06

回答

2

好吧,那麼WHERE條款應該是這樣的:

WHERE TYPE IN ('type2', 'type3') 

而在最後,整條生產線應該是這樣的:

Cursor cursor = db.rawQuery("select DISTINCT " + KEY_NUMBER + " from " + TABLE + " WHERE TYPE IN ('type2', 'type3') ORDER BY KEY_NUMBER DESC", null); 
+0

我剛試過這個,它沒有工作。 'cursor cursor = db.rawQuery(「select DISTINCT」+ KEY_NUMBER +「from」+ TABLE +「WHERE」+ TYPE +「IN('type2','type3')」+「DESC」,null);' – Peter 2013-03-21 22:29:29

+0

也許你應該引入你的訂單條款和「order by」。請參閱下面的答案。 – eternay 2013-03-21 22:38:15

+0

編輯我的答案... – Darwind 2013-03-21 22:43:40

0

試圖刪除DESC關鍵字,並添加where type != '<your_value>'。您的查詢應該是:

db.rawQuery("select DISTINCT "+KEY_NUMBER+" from "+TABLE + " where " + TYPE + " != '" + <value> + "'", null);

當此查詢工作正常,然後再添加排序子句:order by key_number。它應該工作(至少它在MySQL數據庫中工作)。

您可以在this link中看到sqlite數據庫的選擇語法。

我希望這可以解決您的問題。

+0

我不確定這是否適用於sqlite數據庫 – Peter 2013-03-21 22:41:53

+0

它完全遵循語法,所以它應該可以工作。 – eternay 2013-03-21 22:44:11