Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite:SELECT查询结果不一致_Sql_Sqlite_Select_Corruption - Fatal编程技术网

SQLite:SELECT查询结果不一致

SQLite:SELECT查询结果不一致,sql,sqlite,select,corruption,Sql,Sqlite,Select,Corruption,我面临着一些非常奇怪、意想不到的行为,关于不同SELECT查询之间的一些不一致,我不知道这是否可能来自SQLite库、损坏的数据等等 我有一个名为ResultTable10的数据库文件,其结构如下: 整数:Idx(主密钥) 整数:时间戳 整数:去同步 整数:循环 整数:步长 实数:条件值 整数:LimitId 文本:2KLINE1 如果我使用的是最暴力、最残酷的SELECT查询: SELECT * FROM ResultTable10 然后我使用SQLite浏览器()滚动数据 我们来看看

我面临着一些非常奇怪、意想不到的行为,关于不同SELECT查询之间的一些不一致,我不知道这是否可能来自SQLite库、损坏的数据等等

我有一个名为ResultTable10的数据库文件,其结构如下:

  • 整数:Idx(主密钥)
  • 整数:时间戳
  • 整数:去同步
  • 整数:循环
  • 整数:步长
  • 实数:条件值
  • 整数:LimitId
  • 文本:2KLINE1
如果我使用的是最暴力、最残酷的SELECT查询:

SELECT * FROM ResultTable10 
然后我使用SQLite浏览器()滚动数据

我们来看看,例如,Loop=124

让我们再滚动一点,循环=125

根据数据提供程序,给定循环值的行数始终相同(并且给定循环数的列步长值也始终相同,顺便说一下,顺序也相同)

但是,我发现,如果我只坚持SQL SELECT查询结果,这实际上不是~that~真的:

两个不同循环(分别为循环124和125)的字段步长最小值似乎不相同(分别为步长)

此外,以下针对步骤=508的查询也返回不一致的结果:

SELECT * FROM ResultTable10 WHERE Step = 508 AND Loop = 125;
在这里,我可以清楚地看到我之前滚动整个数据集时得到的结果。

但是现在,Loop=124上的查询并没有显示我之前看到的任何结果。

如果两个循环都在WHERE子句中传递,这似乎很好

其他人是否已经经历过这种不一致性、任何潜在的修复、解决方法(除了重写所有数据或执行大规模查询)

这种行为可能来自哪里?(数据损坏、SQL语句中的输入错误等)

编辑: 似乎我遇到了一些腐败问题,我试图在System.Data.SQLite.NET库中挖掘更多信息,最后在 那个 :

有没有防止这些恼人的腐败的一般准则? (我已经在这里检查过了:)

SELECT * FROM ResultTable10 WHERE Step = 508 AND Loop = 124;
SELECT * FROM ResultTable10 WHERE Step = 508 AND Loop BETWEEN 124 AND 125;