当前位置: 首页 > 面试题库 >

SQL ORDER BY更新-使用条件更新最后一条记录

葛永丰
2023-03-14
问题内容

考虑到TimeExited为null,并且计算机名与“
cm”参数相同,我试图更新表Log(具有最新TimeAccessed的字段)的最后一条记录。我有这个但得到错误,“在SQL语句末尾缺少分号”

怎么了??

dbs.Execute "UPDATE Log " _
& "SET TimeExited = " & Format(CloseTime, "\#hh:mm:ss AMPM\#") _
& " WHERE TimeExited is NULL AND ComputerName = '" & cm & "'" _
& " ORDER BY TimeAccessed DESC" _
& " LIMIT 1; "

前两行没什么问题,可以正常工作,这是最后两行带来的问题


问题答案:

Access SQL不会使用LIMIT n它使用use TOP n,并且正如在问题注释中引用的另一个问题中所提到的那样,不允许您按照所描述的方式使用TOP。相反,您需要按照以下步骤进行操作:

UPDATE Log 
SET TimeExited = CloseTime
WHERE TimeExited IS NULL 
    AND ComputerName='r2d2'
    AND TimeAccessed IN
        (
            SELECT TOP 1 TimeAccessed
            FROM Log
            WHERE TimeExited IS NULL 
                AND ComputerName='r2d2'
            ORDER BY TimeAccessed DESC
        )


 类似资料:
  • 问题内容: 看来我在 条件查询 方面遇到了很大的问题。 我必须做一个 有条件的更新 。我在这里写下我想做的事: 显然,这是行不通的。 任何的想法? 问题答案: 支持声明。 或者你也可以使用

  • 问题内容: 使用in 时可以执行更新吗?例如: 问题答案: 有一个非常强大的功能,称为: [15.4。DML风格的操作](http://docs.jboss.org/hibernate/orm/4.3/manual/en- US/html/ch15.html#batch-direct) 来自doc的小引用: …但是,Hibernate提供了通过Hibernate查询语言执行批量SQL样式DML语句

  • 问题内容: 我在Postgres 11.3数据库中有一个带有列的表。 尝试更新嵌套数组名称中的所有对象。 如果路径是对象,则应将路径从对象更新为具有以下值的字符串: 如果不存在该路径,则该对象应保持不变。 使用查询测试设置:小提琴链接 所需结果: 我已经修改了查询并链接到小提琴中。有人可以看看是否正确吗? 问题答案: 平原应该有所作为。 db <>在这里 拨弄 (Postgres 11!) 为了同

  • 问题内容: 我正在尝试运行一个更新查询,它将在sql中看起来像这样: 我正在尝试使用 Criteria 这样重新创建查询: 这行不通,因为满足该条件的行很多,我的独特结果是我猜这里的问题。如何将其转换为符合条件的所有行的更新。我不想使用HQL查询,而是使用Criteria来执行。 问题答案: 始终建议执行批量操作非常接近数据库,除非需要,否则我们不需要在会话中保留更新的对象,因此,在执行批量操作时

  • 问题内容: 我有一张表: 在UI上更新消息后,我调用存储的proc来更新该表。在某些情况下,用户可能仅更新主题,而在其他情况下,仅更新正文。我希望此存储的过程仅更新已更改的内容,因此我还传递了一些标志,用于显示主题或正文是否已更新: 现在我很困惑如何构建条件语句。我的第一个想法是使用: …但这似乎不是正确的语法,因为它必须是分配的右侧。 有什么想法可以做到吗?(请记住,实际上有6个参数可以更新,而

  • 问题内容: 我正在尝试更新表中的值,但是我需要添加一些条件。我找到了CASE函数,但是如果是最好的方法,我就不知道了。这是一个例子: 我的表是例如“关系” 我举个例子: 输出: 我想在3和4之间的关系中更改用户3的名称,但我不知道它是userid1还是userid2。 我虽然如此 但这是行不通的!有任何想法吗?首先十分感谢。 问题答案: 不幸的是,最终要获得的结果还不是很清楚,但是这就是您可以如何