如何在android sql中执行“in”命令

时间:2012-09-26 14:57:45

标签: android sqlite

在android的联系人db中,我试图获取一组具有相同帐户名的记录。 下面给出了查询的“选择”。

selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " =  '1' AND " + ContactsContract.Contacts._ID + " IN  ( SELECT  " + RawContacts.CONTACT_ID +" FROM  raw_contacts WHERE " + RawContacts.ACCOUNT_NAME + "= '" + selectionCriteria +"' )" ;

Cursor = managedQuery(Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts._ID,Contacts.DISPLAY_NAME}, selection, null, order);

这在android版本2.3中运行良好..但在软糖中,我不能直接使用db name作为“raw_contacts”,因为它已被更改为“value_raw_contacts”。

如何使用正确的sql命令实现此目的,而不直接使用其CONTENT_URI来提取像“raw_contacts”这样的数据库名称。

请帮助。

1 个答案:

答案 0 :(得分:0)

static String CONTACTS_TABLE_NAME = "raw_contacts";

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
     ThisClass.CONTACTS_TABLE_NAME = "value_raw_contacts";
}

http://developer.android.com/reference/android/os/Build.VERSION_CODES.html