【问题标题】:Android Loader - handle an arbitrary number of themAndroid Loader - 处理任意数量的它们
【发布时间】:2012-09-22 11:45:02
【问题描述】:

假设我想运行类似于以下内容的查询:

SELECT _id FROM my_table WHERE name = user_supplied_name

如果用户提供了一个任意长度的名称数组,我需要从 my_table 中获取相应的 _id 数字数组怎么办?

是正确的解决方案:

a.) 提供类似于以下内容的 WHERE 子句:

WHERE name = name_1 OR name = name_2 OR name = name_3 ... etc

b.) 为每个名称查询触发多个加载器(与我的第一个 sn-p 格式相同)。但是,当每个 Loader 都具有不同的 ID 时(如在 Loader.getId() 中),如何跟踪它们。假设您必须保留一定范围的 ID 号(例如 10 到 20)以避免冲突,但是您可以提供的名称数量受到限制,跟踪分配的名称等。

c.) 其他方式?

【问题讨论】:

    标签: android sqlite android-loadermanager


    【解决方案1】:

    使用多个加载器不仅难以管理,而且效率低下。

    用一个查询搜索多个名称就可以了,并且与您想要对结果执行的操作最匹配,所以去吧。


    顺便说一句:你也可以使用IN

    SELECT _id FROM my_table WHERE name IN ('name1', 'name2', ...)
    

    【讨论】:

    • 刚刚意识到我什至根本不需要运行这个查询。但是,我相信这对于任何提出相同问题的人来说都是一个有用的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 2021-07-20
    • 2021-02-07
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多