我试图设计一个功能,用户可以在其中指定从查询中获取的数据。以下是最终用户的搜索选项。
我想创建一个可以接受String并将其插入查询以返回所需数据集的函数。
public ArrayList<Player> getPlayers(String contractFilter) {
String query = "... WHERE player.ContractId is " + contractFilter;
}
通过这种设计,我可以传递contractFilter = "null"
或contractFilter = "not null"
。 我可以传入第三种情况(null或非null)吗?类似contractFilter = "any"
的内容?
答案 0 :(得分:2)
恕我直言,最好的解决方案是不要在WHERE
子句中包含该列。如果您使用like SQLiteQueryBuilder
,只需在条件为&#34;任何&#34;时跳过appendWhere()
来电。
你可以尝试解决这个问题:
column_name IS NULL OR column_name IS NOT NULL
column_name LIKE '%'
然而,这些表现会更糟糕。理想情况下,SQLite的查询规划器将检测&#34; any&#34;案例并对其进行优化,但我不认为是这样的。