我可以在 SQLite 查询中指定一个列有任何值吗?

Can I specify in a SQLite query that a column have ANY value?

我正在尝试设计一项功能,用户可以在其中指定他们从查询中获取的数据。以下是最终用户的搜索选项。

我想创建一个函数,它可以接受一个字符串并将其插入到 return 所需数据集的查询中。

public ArrayList<Player> getPlayers(String contractFilter) {
    String query = "... WHERE player.ContractId is " + contractFilter;
}

这样设计,我可以传入contractFilter = "null"或者contractFilter = "not null"我可以为第三个条件(空或非空)传递一些东西吗?像 contractFilter = "any"?

恕我直言,最好的解决方案就是不在 WHERE 子句中包含该列。如果您使用 like SQLiteQueryBuilder,则在条件为 "any".

时跳过 appendWhere() 调用

你可以尝试绕过这个:

  • 使用column_name IS NULL OR column_name IS NOT NULL
  • 使用column_name LIKE '%'

但是,它们的性能很可能会更差。理想情况下,SQLite 的查询规划器将检测 "any" 情况并对其进行优化,但我不认为是这种情况。