Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据库获取状态_Java_Mysql - Fatal编程技术网

Java 从数据库获取状态

Java 从数据库获取状态,java,mysql,Java,Mysql,我有一个包含id PK、tid FK、lidFK和status Varchar列的表。每个tid都有几个盖子,每个盖子都有一个状态:完成或正在进行 我想获得每个tid的状态,其中tid的状态为:如果tid的所有lid都具有状态“完成”,则tid状态为“完成”;如果任何lid状态为“正在进行”,则tid状态为“正在进行” 以下是我迄今为止所做的工作: st2=con.createStatement(); String QueryString2 = "SELECT status from lo_st

我有一个包含id PK、tid FK、lidFK和status Varchar列的表。每个tid都有几个盖子,每个盖子都有一个状态:完成或正在进行

我想获得每个tid的状态,其中tid的状态为:如果tid的所有lid都具有状态“完成”,则tid状态为“完成”;如果任何lid状态为“正在进行”,则tid状态为“正在进行”

以下是我迄今为止所做的工作:

st2=con.createStatement();
String QueryString2 = "SELECT status from lo_status where topic_id='"+topicid+"'";
rs2 = st2.executeQuery(QueryString2);
while (rs2.next()) {
    status=rs2.getString(1);
}

if(status == null){
    status="Pending";
}
else if(status.equals("Finished")){
    status="Finished";
}else{
    status="Ongoing";
}

执行以下操作

SELECT count(rowid) total from lo_status where topic_id='"+topicid+"' and status="Finished";

如果total=0,则状态为“已完成”,否则状态为“正在进行”。

您可以尝试以下查询

Select  count(status) As total  from lo_status where topic_id='"+topicid+"' and status =ongoing";
if(total>0){
 status="OnGoing";
}else
{
 status="Finished";
}

如果有任何查询被询问,您可以尝试使用它。

为您的表提供一个清晰的模板。如果所有这些列都在一个表中,那么就太容易了,如果有不同的表,那么就让您提供一些关于表的详细信息。这些r只在同一个表中..上面的代码工作正常,我只想知道它完成的tid..您刚刚将tid传递给查询,为什么不使用它呢。如果我的解决方案有效,请标记为已被接受。你想知道它是为哪个tid完成的吗?我有一个想法。您可以将查询放入for循环并检查所有tid。你得到多少,哪个tid完成了。你明白我的意思吗?