在Android中使用where条件进行查询
我想设置一个查询来获取包含特定字符串的名称(这里是约束)。 所以我编码:在Android中使用where条件进行查询,android,cursor,android-cursor,Android,Cursor,Android Cursor,我想设置一个查询来获取包含特定字符串的名称(这里是约束)。 所以我编码: Cursor contactCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{Phone.DISPLAY_NAME}, Phone.DISPLAY_NAME + "like + ?", new String[]{"%"+constraint+"%"}, Phone.DISPLAY_NAME + " ASC")
Cursor contactCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{Phone.DISPLAY_NAME}, Phone.DISPLAY_NAME + "like + ?", new String[]{"%"+constraint+"%"}, Phone.DISPLAY_NAME + " ASC");
但是我犯了一个错误。
我知道我很接近。
我哪里错了?你有一个简单的打字错误。更改此项:
"like + ?"
为此:
" like ?"
(在前面加一个空格,去掉
+
)。嗯,这有点模糊。尝试更新后的答案,但如果您想获得更多帮助,请在问题中发布logcat。此处出现异常:android.database.sqlite.SQLiteException:near“?”:语法错误:,编译时:从视图中选择display\u name\u restricted data,其中(1和mimetype='vnd.android.cursor.item/phone\u v2')和(display\u namelike?)按显示名称排序它是空格通知display\u namelike?
是错误的,但是display\u name like?
将编译。