我想在android中进行一个WHERE
查询,而无需命名特定的字段名称。
即,我想在不定义字段名称的情况下进行WHERE
查询(它将在运行时确定)。
我试图做这样的事情:
@Query("SELECT COUNT(*) FROM Workspace WHERE :name = :value")
int countFieldsFor(String name, String value)
但是它不起作用...
我该如何实现?即使直接查询数据库(没有空间)
谢谢。
答案 0 :(得分:1)
您可以使用@RawQuery并将生成的SQL传递给dao接口方法:
@Dao interface RawDao {
@RawQuery
User getUserViaQuery(SupportSQLiteQuery query);
}
SimpleSQLiteQuery query = new SimpleSQLiteQuery("SELECT * FROM User WHERE id = ? LIMIT 1", new Object[]{userId});
User user2 = rawDao.getUserViaQuery(query);