Betrachten Sie eine Beispieltabelle 'Gehaltsangaben'SQL Abfrage-Optimierung (Zeit)
Jetzt, nach einigen Vorverarbeitung, habe ich einige IDs in meiner ArrayList ('user_id').
user_id(0): 1
user_id(1): 3
user_id(2): 4
user_id(3): 6
Was, Ich mag würde Filter tun, ist nur die ids wo Gehalt = 2000
Welcher Ansatz ist besser:
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)
}
oder
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)
Oder Gibt es andere bessere Möglichkeiten?
Es gibt den 'IN'-Operator, der speziell dafür gemacht ist. –
Ja, das ist auch eine Option. Was ich mich wunderte ist: Übergibt Parameter innerhalb der Schleife eine bessere Option oder nicht. Was, wenn ich nach der Vorverarbeitung mehr IDs in meiner Arraylist habe. – Betafish
Was zum Teufel ist diese Syntax: 'user_id.get (2)'? –