sql:在sql:query之后更新(JSTL)

时间:2018-07-26 13:39:07

标签: mysql sql jsp jstl

努力应对简单的sql代码。

首先,我有一个选择,它可以正常运行,并产生一行格式为“ hh:mm:ss”(即14:28:10)的Duration列

<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>

该操作失败,或者语法错误接近LIMIT 1,或者偶尔显示interval变量缺少字符,即'30:28而不是'14:30:28',这可能是文本变量格式问题。

如果我在MySQL Workbench中键入这些命令,它们将正常工作。

任何帮助表示赞赏。

问候 拉尔夫

0 个答案:

没有答案