SQL для получения данных из всех строк для определенного идентификатора в списке, а затем вызвать функцию? - PullRequest
0 голосов
/ 18 ноября 2009

Любые проблемы с производительностью в коде ниже:

Цель: я хочу получить данные из всех строк для определенного идентификатора в списке, а затем вызвать функцию

a = список из 2000 идентификаторов:

for (int i = 0; i < a.size; i++) {
    // Execute query "SELECT * FROM SOME_TABLE WHERE ID = I";
    // Use the data and call a function
}

Любое другое решение? Можно ли иметь только один запрос с группой по идентификатору, и при каждом изменении группы вызывать функцию.

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 ноября 2009

Вы можете использовать предложение ORDER BY, чтобы упорядочить результаты по идентификатору, а затем, как вы сказали, просто отслеживать текущий идентификатор и вызывать функцию каждый раз, когда следующий идентификатор не соответствует текущему (и если вы получаете до конца набора результатов).

0 голосов
/ 18 ноября 2009

Если вы можете выразить функцию / группировку в SQL, это, вероятно, будет быстрее. Но это зависит от того, что делает функция.

Это может выглядеть как

  select id, max(amount), sum(amount) from some_table group by id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...