伙计们我很担心这个。假设我有一个对象需要通过运行3个不同的SQL语句从 SAME (如前所述不同的表)中的数据库中返回3个不同的数字,不幸的是SQL语句有点复杂,我不知道如何将它们现在组合成单个语句。所以暂时我想实现 - 请求(运行3个单独的查询)响应..
我发现THIS这是我想要的,但这是基于C而不是Java。你知道一个等价的吗?或者,如果您对如何处理这个问题有所了解?
我现在拥有的是在我的php页面中显示内容,我向这个类别发出3个单独的请求,并且每个请求都有一个唯一的标记'
所以
www.something.com?stuff1=stuff1&flag=1
www.something.com?stuff1=stuff1&flag=2
依此类推,然后返回3个不同的数字,然后我会在页面上显示。它有效,但它不是很好,我想让它变得更好“。 ;)
修改
我正在为此应用使用Spring Framework
好的以下是我针对数据库运行的SQL查询。
public String query1() {
setCurrent("Phone 1");
return "select sum(case when calltime<60 then 0.035 else ceiling(calltime*3.5*10/60)/1000 end) from call where accountid = "+account.getId()+" and oqannounced is not null"
+ " and (calledback is null or (not ((calledback=2 and agentid is not null)))) and entry>'"+account.getFromDate()+"' and entry < '"+account.getToDate()+"'";
}
public String query2() {
setCurrent("Phone 2");
return "select count(1) from call where accountid = "+account.getId()+" and agentid is not null and calledback=2 and entry>'"+account.getFromDate()+"' and entry < '"+account.getToDate()+"'";
}
public String query3() {
setCurrent("Phone 3");
return "select sum(case when calltime<60 then 0.004 else ceiling(calltime*0.4*10/60)/1000 end) from call where accountid = "+account.getId()+" and oqannounced is null"
+ " and (calledback is null or (not ((calledback=2 and agentid is not null)))) and entry>'"+account.getFromDate()+"' and entry < '"+account.getToDate()+"'";
}
所以之前说过我需要针对3个不同的tabled运行,事实上我道歉但是我错了它的同一个表,所以我认为有一种方法可以加入(并且可能重新分解)这些SQL语句。请注意,我没有写过这些语句,而是其他开发人员。
由于
答案 0 :(得分:0)
您可以创建可以包含所有3个查询的Stored Procedure
,并将结果返回给您的代码。从那时起,您可以根据需要准备JSON /响应。
您可以找到有关从MySQL存储过程here返回多个值的精彩教程。