gpt4 book ai didi

java - Java/MySQL 数据库查询结果存储、更新和重用的方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:03 25 4
gpt4 key购买 nike

目前,我有一个生成报告的场景,我需要在从特定表检索数据时分别或同时应用多个但可选的过滤器和条件。目前,我正在检查每个过滤器并通过为每个场景创建单独的 SQL 语句来应用它,如下所示:

For instance: Reporting requirements: sort by column x, filter where column y = "foo", date between a and b.

Scenario 1: All filter applied.
SELECT * FROM REPORT_TABLE WHERE y='foo' AND date>a AND date<b ORDER BY x ASC

Scenario 2: Sort and date filter applied.
SELECT * FROM REPORT_TABLE WHERE date>a AND date<b ORDER BY x ASC

Scenario 3: Sort and 'foo' type filter applied.
SELECT * FROM REPORT_TABLE WHERE y='foo' ORDER BY x ASC

Scenario 4: Only sort applied
SELECT * FROM REPORT_TABLE ORDER BY x ASC

//So on...

上述方法的问题在于,随着过滤器的增加,查询表的场景可能会越来越多。所以,有没有一种方法可以通过简单地重用查询结果来完成上述操作。

例如,即使我有一个或多个,检查每个过滤器并相应地应用。

Scenario: provide all required filter as list

//first get all the rows and store it variable.
result = SELECT * FROM report_table;

//Now loop through each filter from given filter list and apply it.
//and store the updated query result
result = SELECT * FROM result WHERE //apply filter 1.
//loop end.
//finally all filter applied, return the result.

最佳答案

看看myBatis dynamic sql .它是专门为解决您要解决的问题而创建的。

关于java - Java/MySQL 数据库查询结果存储、更新和重用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com