Sqlite3-获取给定行之后的所有行,并将文本值作为主键

Sqlite3-获取给定行之后的所有行,并将文本值作为主键,sql,Sql,我现在面临一个问题,有人将文本值作为主键 该表如下所示: |---------------------|------------------| | ID | Order | |---------------------|------------------| | "0004" | "0002" | |---------------------|------------------| |

我现在面临一个问题,有人将文本值作为主键

该表如下所示:

|---------------------|------------------| | ID | Order | |---------------------|------------------| | "0004" | "0002" | |---------------------|------------------| | "0009" | "0004" | |---------------------|------------------|
SELECT * FROM table WHERE id > id_number and order > order_number;
SELECT * FROM table WHERE id > "id_number_as_string" and order > "order_number_as_string";
但我不知道如何用文本值实现同样的效果。 试着这样做:

|---------------------|------------------| | ID | Order | |---------------------|------------------| | "0004" | "0002" | |---------------------|------------------| | "0009" | "0004" | |---------------------|------------------|
SELECT * FROM table WHERE id > id_number and order > order_number;
SELECT * FROM table WHERE id > "id_number_as_string" and order > "order_number_as_string";
按错误的顺序返回所有行

其目标是防止从远程服务器下载整个表,并仅获取那些尚未在本地表中的表

提前谢谢

这应该有效:

SELECT *
FROM table
WHERE id > '0001' and order > '0002';

比较值应该是字符串,用单引号分隔,并用零填充。

这里基本上有两个选项:

  • 将ID转换为INT,并将它们作为数字进行比较
  • 获取上次订单的日期,然后仅插入日期大于上次插入订单日期的订单

  • 您的代码应该使用字符串。您可以在您的条件下使用Case:Case:Id:int(XixIn)>席应该提到,ID也像“00000 23272”是可能的。很乱。但是将ID转换为整数效果非常好。不过还是要谢谢你!