gpt4 book ai didi

java - SQLite 搜索查询不适用于双数据类型数据?

转载 作者:行者123 更新时间:2023-11-30 22:29:42 27 4
gpt4 key购买 nike

我有 3 列:

  1. 纬度
  2. 经度
  3. 地名。

如果我在搜索查询中传递地名,我可以获得 latlang 值。但是如果我通过纬度或经度值,我没有得到地名。游标总是返回计数 0。

运作良好:

Select * from tablename where placename='chennai'

不工作:

Select * from tablename where latitude='12.2383'

帮帮我

最佳答案

问题是您如何定义 latitude。如果它是一个字符串,并且正是那个值,那么很好。否则,您可能正在比较浮点值,这是一个问题——您的偏差很小。您可能认为数据库中的值是 12.2383,但实际上可能是 12.2383000001。您可能认为传递的值是 12.2383,但实际上可能是 12.2382999997。

这里有几种方法可以解决这个问题:

where abs(latitude - 12.2383) < 0.00001

where cast(latitude as decimal(8, 4)) = cast(12.2383 as decimal(8, 4))

where latitude between 12.2382 - 0.000001 and 12.2382 + 0.000001

后一种方法更可取,因为它允许使用索引。

关于java - SQLite 搜索查询不适用于双数据类型数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34193433/

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