我将以下语句作为 Android 中的 rawQuery 传递:
SELECT DISTINCT ltUsers._id,ltUsers.NAME,ltUsers.GLOBAL_ID, ltGroups.GROUP_NAME
FROM ltUsers
JOIN ltGroups ON (ltUsers.GROUP_ID = ltGroups.GLOBAL_ID)
WHERE ltgroups.GLOBAL_ID = ? " +
ORDER BY ltUsers.NAME ASC,ltgroups.GLOBAL_ID ASC;
使用 rawQuery 如下:
Cursor c = db.rawQuery(sql,args)
如果我将值传递给参数,它就可以正常工作,例如
String[] args = new String[]{"2"}
但是,我也希望能够显示所有行,不受子句GLOBAL_ID
中的限制。WHERE
在 Android 之外测试我的 SQLite 数据库转储 - 以及在 Android 中通过直接将参数写入语句 - 显示以下子句是执行此操作的有效方法:
WHERE ltGroups.GLOBAL_ID = ltGroups.GLOBAL_ID
然而,当我传递字段引用ltGroups.GLOBAL_ID
或[ltGroups].[GLOBAL_ID]
作为参数时,它无法返回 rawQuery 中的任何行。关于为什么会发生这种情况的任何想法?很高兴提供任何额外的信息。