gpt4 book ai didi

android - 在 sqlite android 中转换为整数不返回准确结果

转载 作者:搜寻专家 更新时间:2023-11-01 08:29:50 24 4
gpt4 key购买 nike

我正在尝试使用 CAST AS INTEGERWHERE条款。因为我有一个列为 TEXT我想申请 <=>=在那个专栏上。它在 SqlBrowser 上运行良好(精细记录,如 exptectd i,e 12 条记录)但没有在模拟器或设备(它的 SqlLite 数据库)上返回准确的结果(转换为整数似乎不能处理超过 1000 条记录)。这是我的查询

SELECT  l.* FROM leads AS l   
WHERE cast ( l.lead_budget as INTEGER) >= 1200
AND cast ( l.lead_budget as INTEGER ) <= 15000

我想知道我错过了什么。随便猜

最佳答案

这是 kitkat 的问题。我过去有过这样的问题。我在 6.0 上尝试了相同的转换查询,它按预期工作。在 6.0 上试试。但是 sqllite 支持转换和 here它是关于转换为整数等的文档吗?但经过更多挖掘后,我发现大多数 kitkat 使用 SQLite 3.7.11:Here是一个链接。我找到了这个 page关于 sqllite 的版本。他们描述了他们在每个版本中修复的问题。

这是他们在 3.8.2 中所做的更改

当大于 +9223372036854775807 的浮点值被转换为整数时,更改了 CAST 表达式的定义行为,以便结果是可能的最大整数,+9223372036854775807 ,而不是最小可能的整数,-9223372036854775808。此更改后,CAST(9223372036854775809.0 as INT) 生成 +9223372036854775807 而不是 -9223372036854775808。 ← 可能不兼容的变化!

然后在 3.8.7 他们改进了 CAST 运算符的优化。然后我发现了这个 ticket这解释了很多真正的错误。现在它已修复,可能可以工作或使用新设备,但对于旧设备,您必须找到其他解决方案。对于这个操作系统问题,您不能依赖转换查询。因为您不确定哪个操作系统版本使用哪个 SQL 版本。希望对您有所帮助。

关于android - 在 sqlite android 中转换为整数不返回准确结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com