if (!"".equals(docIdOfAttachmentList) && docIdOfAttachmentList != null) { string IsextFileNull = "select isextfile from docimagefile where docid = ? "; for (int i = 0; i < docIdOfAttachmentList.size(); i++) { String tmptsql = "SELECT MAX(imagefileid) AS imagefileid FROM docimagefile WHERE docid=? AND (isextfile IS NULL OR isextfile='')GROUP BY id ORDER BY imagefileid DESC"; rs.executeQuery(tmptsql, docIdOfAttachmentList.get(i)); while (rs.next()) { imagegileIdOfAttachmentList.add(rs.getString("imagefileid")); } } } 需要添加判断 如果查出来的sql 中imagefileid是最小的而且 isextfile 等于1 则 获取 docimagefile 表下 docfiletype=12得所有值 应该怎么写
时间: 2024-01-31 17:02:21 浏览: 63
根据您的描述,我理解您需要在原有代码基础上添加一个判断条件,如果满足条件则获取指定的值。根据您提供的要求,我做出以下修改建议:
1. 在 `while (rs.next())` 循环的外部,添加一个变量 `minImagefileId` 用于存储最小的 `imagefileid`。
2. 在循环内部,使用 `getInt()` 方法获取当前行的 `imagefileid` 值,并与 `minImagefileId` 进行比较。如果当前值比 `minImagefileId` 更小,则更新 `minImagefileId` 的值。
3. 在循环结束后,判断 `minImagefileId` 是否满足条件(即 `isextfile` 等于 1)。如果满足条件,执行一个新的 SQL 查询,获取 `docimagefile` 表下 `docfiletype=12` 的所有值。
下面是修改后的代码片段:
```
if (!"".equals(docIdOfAttachmentList) && docIdOfAttachmentList != null) {
String IsextFileNull = "select isextfile from docimagefile where docid = ? ";
for (int i = 0; i < docIdOfAttachmentList.size(); i++) {
String tmptsql = "SELECT MAX(imagefileid) AS imagefileid FROM docimagefile WHERE docid=? AND (isextfile IS NULL OR isextfile='')GROUP BY id ORDER BY imagefileid DESC";
rs.executeQuery(tmptsql, docIdOfAttachmentList.get(i));
// 添加变量 minImagefileId
int minImagefileId = Integer.MAX_VALUE;
while (rs.next()) {
// 获取当前行的 imagefileid 值
int currentImagefileId = rs.getInt("imagefileid");
// 与 minImagefileId 进行比较
if (currentImagefileId < minImagefileId) {
minImagefileId = currentImagefileId;
}
}
// 判断 minImagefileId 是否满足条件
String extFileSql = "SELECT imagefileid FROM docimagefile WHERE docid=? AND isextfile=1 AND imagefileid=?";
rs.executeQuery(extFileSql, docIdOfAttachmentList.get(i), minImagefileId);
if (rs.next()) {
// 获取 docimagefile 表下 docfiletype=12 得所有值
String docfiletypeSql = "SELECT * FROM docimagefile WHERE docid=? AND docfiletype=12";
rs.executeQuery(docfiletypeSql, docIdOfAttachmentList.get(i));
while (rs.next()) {
// 处理获取到的值
}
}
}
}
```
请注意,这只是修改建议,并未在实际环境中进行测试。在实际使用时,请仔细检查代码逻辑和语法错误。
阅读全文