Java “奥姆莱特不会带来结果”;其中;加上;不等于;比较器和空列值

Java “奥姆莱特不会带来结果”;其中;加上;不等于;比较器和空列值,java,android,sql,sqlite,ormlite,Java,Android,Sql,Sqlite,Ormlite,这条线怎么了 qB.where().ne(AppConstant.SYNC_STATUS_FIELD_NAME, strSyncOK); 我正在做一个简单的计算,其中不等于ORMlite,结果为0,没有错误: 完整代码: dao = DaoManager.createDao(connectionSource, clazz); QueryBuilder qB = dao.queryBuilder(); SelectArg strSyncOK = new SelectArg(AppConstant

这条线怎么了

qB.where().ne(AppConstant.SYNC_STATUS_FIELD_NAME, strSyncOK);
我正在做一个简单的计算,其中不等于ORMlite,结果为0,没有错误:

完整代码:

dao = DaoManager.createDao(connectionSource, clazz);
QueryBuilder qB = dao.queryBuilder();
SelectArg strSyncOK = new SelectArg(AppConstant.SYNC_OK); // ==> "OK" string
qB.where().ne(AppConstant.SYNC_STATUS_FIELD_NAME, strSyncOK);
List<T> var = dao.query(qB.prepare());
一切都好

当该行存在时,未找到任何结果,我检查了数据,并且所有具有AppConstant.SYNC\u STATUS\u FIELD\u NAME的数据都为空

参数:

public static final String SYNC_OK = "OK";
输出:

SELECT * FROM `Evento` WHERE `syncStatus` <> ? 
从'Evento'中选择*其中'syncStatus`?

我遗漏了什么?

我相信这是Sqlite常见问题解答,不是问题。如果您直接尝试:

sqlite> CREATE TABLE table1 (foo int, bar string);
sqlite> INSERT INTO table1 (foo, bar) VALUES (1, 2);
sqlite> INSERT INTO table1 (foo, bar) VALUES (2, null);
现在我们来看一下查询:

sqlite> SELECT * FROM table1 WHERE foo == 1;
1|2
sqlite> SELECT * FROM table1 WHERE foo == 2;
2|
请注意,当我们说bar!=值,空字段不匹配:

sqlite> SELECT * FROM table1 WHERE bar != 3;
1|2
但是,当我们使用Sqlite的
IS NOT
运算符时,它确实匹配
null

sqlite> SELECT * FROM table1 WHERE bar is not 3;
1|2
2|    <---- here it is!!
sqlite>SELECT*从表1中选择,其中bar不是3;
1|2

2 |好的,很好的例子,有一点逻辑,应该更明确,比较器。。。好了,现在在ORMLite中“不是”的等价物是什么?我只看了3个选项:.isNull(field),.isNotNull(field)和.not(where)---i supose是.not(where)如何实现它?您可以使用
isNotNull(…)
进行
和(…)
查询。另一种解决方案是使用
rawcomparation(…)
sqlite> SELECT * FROM table1 WHERE bar is not 3;
1|2
2|    <---- here it is!!