サンプルテーブル「salary_details」SQLクエリの最適化(時間)
いくつかの前処理の後、私はいくつかのIDをArrayList( 'user_id')に持っています。私がやりたい何か、
user_id(0): 1
user_id(1): 3
user_id(2): 4
user_id(3): 6
は給与= 2000
が優れているアプローチのみのidのフィルタである:
1.
for (int i = 0; i < user_id.size(); i++) {
SELECT ID FROM salary_details WHERE (part_id = user_id.get(i)) AND (SALARY = 2000)
}
または
2.
SELECT ID FROM salary_details
WHERE ((part_id = user_id.get(0))
OR (part_id = user_id.get(1))
OR (part_id = user_id.get(2))
OR (part_id = user_id.get(3)))
AND (SALARY = 2000)
あるいは、他にも良い選択肢がありますか?
具体的に作られた 'IN'演算子があります。 –
はい、これもオプションです。私が疑問に思ったのは、ループ内のパラメータをより良いオプションに渡すかどうかです。前処理の後、私はarraylistでより多くのIDで終わるでしょうか? – Betafish
この構文は何ですか: 'user_id.get(2)'? –