最好一次查询,然后根据返回的列值组织对象,或者用不同的条件查询两次?

Dra*_*vuk 5 java sql database

我有一个表需要查询,然后根据列值将返回的对象组织成两个不同的列表.我可以查询一次表,检索用于区分对象的列,并通过循环遍历结果集来排列它们,或者我可以使用两个不同的条件查询两次并避免排序过程.哪种方法一般更好的做法?

MY_TABLE

NAME    AGE    TYPE
John    25     A
Sarah   30     B
Rick    22     A
Susan   43     B
Run Code Online (Sandbox Code Playgroud)

或者SELECT * FROM MY_TABLE,然后根据返回的类型对代码进行排序,或者

SELECT NAME, AGE FROM MY_TABLE WHERE TYPE = 'A' 其次是

SELECT NAME, AGE FROM MY_TABLE WHERE TYPE = 'B'

Nik*_*eja 4

从逻辑上讲,来自 Java 代码的数据库查询将比代码中的循环更昂贵,因为查询数据库涉及多个步骤,例如连接到数据库、创建 SQL 查询、触发查询并获取结果。

此外,在触发第一个和第二个查询之间可能会出现问题。

通过优化的单个查询和循环代码,您可以比触发两个查询节省大量时间。

对于您的情况,如果有帮助,您可以对查询本身进行排序:

SELECT * FROM MY_TABLE ORDER BY TYPE
Run Code Online (Sandbox Code Playgroud)

将来,如果有更多类型添加到表中,您不需要触发额外的查询来检索它。