gpt4 book ai didi

android - 为什么 selectionArgs 必须是一个字符串数组?

转载 作者:行者123 更新时间:2023-11-30 02:18:11 24 4
gpt4 key购买 nike

我在 stack overflow 中回答了一个问题,提出这个问题的用户问我:
SQlite Query in android using cursor

why i must give my selectionArgs an Array instead its a single value ?

我以前没有考虑过这个问题,现在也是我的问题。当数据库查询中selectionArgs只有一个值时,我们必须使用数组吗?
(我希望我在正确的地方纠正了我的问题)

最佳答案

这是 relevant documentation .基本上,String[] selectionArgs 是一个数组,因此您可以为 sql WHERE 子句设置一个或多个参数。由于这些参数在 database.query() 方法中使用,它们实际上是在构建一个由 SQLite 运行的原始 sql 查询字符串。在 String selection 参数中,您指定所有 WHERE 子句列名称,如下所示:

String selection = "DefaultId =? OR Name=?";

对于 selection 中的每个 ?,都会从您的 selectionArgs 数组中替换相应的 WHERE 值。所以,你应该有这样的东西:

String[] selectionArgs = new String[]{"567", "Bob"};

database.query() 方法为在 selection 中找到的每个 ? 遍历 selectionArgs。因此,数组大小应与您在 selection 中使用的 ? 占位符的数量相匹配。 (如果 ? 多于 selectionArgs 值,那么我相信 null 会被替换。不过我还没有验证这一点。)

基本上,因为可以将多个 WHERE 值替换到 selection 中,这就是为什么 selectionArgs 是一个数组而不是一个简单的字符串。

关于android - 为什么 selectionArgs 必须是一个字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28958708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com