从SQLite表中选择一条记录-并检查其时间戳是否为最新的

亚历山大·法伯

在一个Android游戏中,我将从不同社交网络中检索到的用户信息存储在SQLite表中-

create table table_social (
        id text primary key,
        social integer not null, /* Facebook = 1, Google+ = 2, Twitter = 3, ... */
        first_name text not null,
        photo text null,
        city text null,
        stamp datetime default current_timestamp /* indicates if it's "main" profile */
);

并通过最新时间戳指示“主要”玩家资料(显示在应用导航抽屉中并显示给远程游戏合作伙伴的资料):

应用截图

我的问题:

是否可以从这样的表中选择某个记录,并指出它是否具有最新的时间戳-在同一SQL命令中?

(我想使用后一种信息在我的应用中启用/禁用“设为主要个人资料”按钮)。

这是我在Android SDK的sqlite3.exe提示符下尝试过的操作-

首先创建表并用3条记录填充它:

C:\Users\user1\AppData\Local\Android\Sdk\platform-tools>sqlite3.exe
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> create table table_social (
   ...>         id text primary key,
   ...>         social integer not null, /* Facebook = 1, Google+ = 2, Twitter = 3, ... */
   ...>         first_name text not null,
   ...>         photo text null,
   ...>         city text null,
   ...>         stamp datetime default current_timestamp
   ...> );
sqlite> insert into table_social (id, social, first_name) values (1, 1, "Alex on Facebook");
sqlite> insert into table_social (id, social, first_name) values (2, 2, "Alex on Google+");
sqlite> insert into table_social (id, social, first_name) values (3, 3, "Alex on Twitter");

然后,我可以检索“主要”玩家个人资料:

sqlite> select * from table_social order by stamp desc limit 1;
3|3|Alex on Twitter|||2015-10-21 10:47:40

而且我能够检索Facebook用户数据:

sqlite> select *, stamp=max(stamp) from table_social where social=1;
1|1|Alex on Facebook|||2015-10-21 10:47:18|1

但是,请问如何结合这两个命令?

我已经尝试了以下方法,但是它返回1(而它应该返回false):

sqlite> select *, max(stamp)=stamp from table_social where social=1;
1|1|Alex on Facebook|||2015-10-21 10:47:18|1

我也尝试了子选择查询:

sqlite> select *, stamp=(select * from table_social order by stamp desc limit 1) from table_social where social=1;
Error: only a single result allowed for a SELECT that is part of an expression
CL。

标量子查询必须返回单个值。(错误消息已经告诉您了。)因此,请替换(select * ...)(select stamp ...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从时间戳为最新的表中选择

来自分类Dev

如何从Cassandra中的时间序列中选择最后一条记录?

来自分类Dev

从一个表中选择每个类别下的最新20条记录

来自分类Dev

mysql查询按时间选择最后一条记录

来自分类Dev

mysql查询按时间选择最后一条记录

来自分类Dev

为每个ID选择每月的最后一条记录

来自分类Dev

Postgres为每个匹配条件选择一条记录

来自分类Dev

选择是否有第一条记录的情况

来自分类Dev

从数据表中为设备表中的每个设备选择最后一条记录

来自分类Dev

分组并根据创建的时间戳选择最后一条记录

来自分类Dev

外键仅从表中选择一条记录

来自分类Dev

Oracle中选择一条记录的表

来自分类Dev

PostgreSQL 在表A中为表B中的每条记录插入一条记录

来自分类Dev

选择一条记录,即使其值较低的记录花费的时间过长且失败

来自分类Dev

如何检查一条记录是否附加到另一条记录?

来自分类Dev

从表中的分组记录中选择除最后一条记录之外的所有记录

来自分类Dev

Yii从表中选择在相关表中没有记录的第一条记录

来自分类Dev

从SQLite中的类似记录中选择最后一条记录

来自分类Dev

选择日期和时间列的最后一条记录

来自分类Dev

当我执行一条准备好的语句以选择db表中的行时,pdo是否“获取”记录并对其进行缓存?

来自分类Dev

当我执行一条准备好的语句以选择db表中的行时,pdo是否“获取”记录并对其进行缓存?

来自分类Dev

使用 Entity Framework Core 方法语法为组选择一条记录

来自分类Dev

检查是否在Ember Data中加载了一条记录

来自分类Dev

遍历表以显示日期时间> = Today.now的下一条记录

来自分类Dev

如何在表中插入一条记录,使ID为string的字段?

来自分类Dev

为新表的连续日期序列创建一条记录

来自分类Dev

MySql-从18446744073709551615记录中选择一条记录

来自分类Dev

MySql-从18446744073709551615记录中选择一条记录

来自分类Dev

SQL - 显示一条记录是否是在另一条记录之后创建的

Related 相关文章

  1. 1

    从时间戳为最新的表中选择

  2. 2

    如何从Cassandra中的时间序列中选择最后一条记录?

  3. 3

    从一个表中选择每个类别下的最新20条记录

  4. 4

    mysql查询按时间选择最后一条记录

  5. 5

    mysql查询按时间选择最后一条记录

  6. 6

    为每个ID选择每月的最后一条记录

  7. 7

    Postgres为每个匹配条件选择一条记录

  8. 8

    选择是否有第一条记录的情况

  9. 9

    从数据表中为设备表中的每个设备选择最后一条记录

  10. 10

    分组并根据创建的时间戳选择最后一条记录

  11. 11

    外键仅从表中选择一条记录

  12. 12

    Oracle中选择一条记录的表

  13. 13

    PostgreSQL 在表A中为表B中的每条记录插入一条记录

  14. 14

    选择一条记录,即使其值较低的记录花费的时间过长且失败

  15. 15

    如何检查一条记录是否附加到另一条记录?

  16. 16

    从表中的分组记录中选择除最后一条记录之外的所有记录

  17. 17

    Yii从表中选择在相关表中没有记录的第一条记录

  18. 18

    从SQLite中的类似记录中选择最后一条记录

  19. 19

    选择日期和时间列的最后一条记录

  20. 20

    当我执行一条准备好的语句以选择db表中的行时,pdo是否“获取”记录并对其进行缓存?

  21. 21

    当我执行一条准备好的语句以选择db表中的行时,pdo是否“获取”记录并对其进行缓存?

  22. 22

    使用 Entity Framework Core 方法语法为组选择一条记录

  23. 23

    检查是否在Ember Data中加载了一条记录

  24. 24

    遍历表以显示日期时间> = Today.now的下一条记录

  25. 25

    如何在表中插入一条记录,使ID为string的字段?

  26. 26

    为新表的连续日期序列创建一条记录

  27. 27

    MySql-从18446744073709551615记录中选择一条记录

  28. 28

    MySql-从18446744073709551615记录中选择一条记录

  29. 29

    SQL - 显示一条记录是否是在另一条记录之后创建的

热门标签

归档