2013-03-21 65 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