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

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

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

  1. <sql:query var="newquery" dataSource="jdbc/datbase">
  2. select SEC_TO_TIME(secdiff) as Duration, assetid
  3. from
  4. (select TIMESTAMPDIFF(SECOND, ts, '<%=endt%>') as secdiff, assetid
  5. from
  6. (SELECT * FROM
  7. (select * from logs
  8. where assetid =${ param.assetid }
  9. order by ts desc
  10. )AS T
  11. )AS U
  12. )AS V
  13. group by assetid
  14. </sql:query>

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

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

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

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

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

暂无答案!

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

相关问题