我可以在 ContentResolver 列查询上运行 SQL 函数吗?

发布于 2024-08-26 16:15:56 字数 130 浏览 12 评论 0原文

我想知道当您查询 ContentProvider 时,Android 的 ContentResolver 是否支持在列上使用 SQL 函数。比如SQLite3的日期函数,获取特定的日期格式,还是datediff?

你对此了解多少?

I am wondering if Android's ContentResolver supports using SQL functions over the columns when you query a ContentProvider. Such as SQLite3 date functions, to get a specific date format, or datediff?

What do you know about this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的黑色迷你裙 2024-09-02 16:15:57

不会。即使您发现它适用于某些情况,您也不能假设它适用于所有情况。

ContentProvider 是一个外观。给定的 ContentProvider 可能会使用 SQLite。它可能使用 XML 文件。它可能使用 JSON 文件。它可能使用 CSV 文件。它可能使用一些第三方 SQL 数据库。它可能使用一些第三方对象数据库。它可能没有太多本地内容,而是将其内容存储在云中,通过 Web 服务调用访问。您甚至无法确定 ContentProvider 是否一定支持经典的 SQL WHERE 子句 - 某些支持 XML 的 ContentProvider 可能会使用 XQuery 语法。

因此,即使知道 datediff 是什么,您也绝对不能依赖 ContentProvider

No. Even if you find it works for some cases, you cannot assume it works across the board.

ContentProvider is a facade. A given ContentProvider might use SQLite. It might use XML files. It might use JSON files. It might use CSV files. It might use some third-party SQL database. It might use some third-party object database. It might not have much of any local content, but instead have its stuff out in the cloud, reached via Web service calls. You can't even be sure that a ContentProvider necessarily supports a classic SQL WHERE clause -- some XML-backed ContentProvider might use XQuery syntax instead.

Hence, you definitely cannot rely upon a ContentProvider even knowing what datediff is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文