sql:update after sql:query (jstl公司)

nr9pn0ug  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(277)

挣扎于简单的sql代码。
首先,我有一个select,它工作正常并生成一行,其中duration列的格式为hh:mm:ss(即14:28:10)

<sql:query var="newquery" dataSource="jdbc/datbase">
                    select SEC_TO_TIME(secdiff) as Duration, assetid
                    from
                    (select TIMESTAMPDIFF(SECOND,  ts,  '<%=endt%>') as secdiff, assetid
                    from
                    (SELECT * FROM 
                    (select * from logs 
                    where assetid =${ param.assetid }
                    order by ts desc 
                    )AS T
                    )AS U
                    )AS V
                    group by assetid
                    </sql:query>

然后我想使用duration来更新另一个表的第一行中的duration值,因此我假设必须首先设置一个变量-

<c:forEach var="newrow" items="${newquery.rows}">
                    <c:set var="interval" value="${newrow.Duration}"/>
                    </c:forEach>

然后只更新表中的第一行-

<sql:update var="anotherquery" dataSource="jdbc/database">
                    update duration SET Duration = ${interval} LIMIT 1;
                    </sql:update>

此操作失败,可能是因为语法错误接近限制1,也可能偶尔显示间隔变量缺少字符,即“30:28”而不是“14:30:28”,这可能是文本变量格式问题。
如果我在mysql工作台中输入这些命令,它们就可以正常工作。
感谢您的帮助。
向拉尔夫问好

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题