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