首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅从Server获取新数据

仅从Server获取新数据
EN

Stack Overflow用户
提问于 2017-09-04 08:46:51
回答 4查看 1.4K关注 0票数 1

我运行了我的应用程序,它定期从Server获取数据。这里的问题是,我想要创建自上次阅读以来的记录。

让我举个例子。

起初,(12:00)

代码语言:javascript
复制
Table
---------
orderId orderName
1       name1
2       name2
3       name3
4       name3

我要在这里选择所有的数据。

代码语言:javascript
复制
SELECT *
FROM TABLE

一分钟后,一些数据被添加到下面的表格中,

代码语言:javascript
复制
Table
---------
orderId orderName
1       name1
2       name2
3       name3
4       name3
5       name4
6       name5

此时,当我选择如下数据时,

代码语言:javascript
复制
select *
from TABLE

我想得到的是第5行和第6行,这是在我之前选择后添加的。

我的想法是,我需要保留一个标识符来表示id的事务或类似的东西,但是我仍然没有捕捉到任何想法.你能帮帮我吗?任何关键字或链接帮助我?

实现refresh事件将有助于我按照我所期望的想法只获得新的数据。

谢谢各位,这是我有的更具体的桌子。

代码语言:javascript
复制
Table
---------
orderId      orderTime
1       2017-9-4 8:00:00.000
1       2017-9-4 8:00:10.000
1       2017-9-4 8:00:20.000
1       2017-9-4 8:00:30.000
1       2017-9-4 8:00:40.000
1       2017-9-4 8:00:50.000

2       2017-9-4 8:00:11.000
2       2017-9-4 8:00:20.000
2       2017-9-4 8:00:32.000
2       2017-9-4 8:00:40.000

并且时间记录将在orderId的基础上连续添加。大多数认为我保留最后一个orderId的想法可能不适用于我的情况。在具体的情况下我该如何处理呢?

EN

回答 4

Stack Overflow用户

发布于 2017-09-04 09:27:15

没有任何关键字来标识上一次执行的最新条目。因为,您的查询在不同的会话上运行两个时间。所以,你无法辨认它。

但基本上,我们还有其他选择来完成这项任务。

  1. 通过维护标识符的最大值来实现。将其保存到变量、会话、参数等中. 从orderId > yourvariableValue的表中选择*
票数 1
EN

Stack Overflow用户

发布于 2017-09-04 09:29:39

您需要始终将上一个select中最大的select保存在某个地方,然后知道orderId在您的select中使用它,如下所示:

代码语言:javascript
复制
select ...
from ...
where orderId > 4
票数 0
EN

Stack Overflow用户

发布于 2017-09-05 06:23:11

将最后一个orderId 和关联的最后一个orderTime存储在变量中。

这应该是你想要的。

代码语言:javascript
复制
DECLARE @lastOrderId int = 2
DECLARE @lastOrderTime datetime = '2017-9-4 8:00:40.000'

SELECT * FROM Table
WHERE (orderId = @lastOrderId AND orderTime > @lastOrderTime) OR orderId > @lastOrderId
ORDER BY orderId, orderTime;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46033412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档