0

次のようなクエリを実行するとします。

SELECT _id FROM my_table WHERE name = user_supplied_name

ユーザーが任意の長さの名前の配列を提供し、対応する _id 番号の配列を my_table から取得する必要がある場合はどうすればよいでしょうか?

正しい解決策は次のとおりです。

a.) 次のような WHERE 句を指定します。

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

b.) 名前クエリごとに複数のローダーを起動します (最初のスニペットと同じ形式)。ただし、すべてのローダーが異なる ID を持っている場合 (Loader.getId() のように)、各ローダーを追跡する方法は次のとおりです。おそらく、競合を避けるために ID 番号の範囲 (10 から 20 など) を予約する必要がありますが、指定できる名前の数が制限されたり、割り当てられている名前を追跡したりできます。

c.) 他の方法で?

4

1 に答える 1

0

複数のローダーを使用すると、管理が困難になるだけでなく、非効率的になります。

1 つのクエリで複数の名前を検索することは問題なく機能し、結果でやりたいことと最もよく一致するので、それを実行してください。


ところで:次も使用できますIN

SELECT _id FROM my_table WHERE name IN ('name1', 'name2', ...)
于 2012-09-22T12:19:03.810 に答える