android - 比较 SQLite 中的 Double NOT 字符串值

标签 android sqlite comparison

我正在尝试使用 BETWEEN 运算符通过 Android 比较 sqlite 中的纬度和经度值。问题是,该值总是像字符串一样进行比较,而我不知道如何将其作为数字进行比较。我发现这一点是因为使用查询“select * from database orderby latitude”会返回一个未按数字排序的列表。 KEY_LAT 和 KEY_LONG 我已存储为 TEXT 和 REAL,并且得到相同的输出。请告诉我您需要什么信息。

这是查询:

         double high_lat = curr_lat + 100.0;
     double high_long = curr_longitude + 100.0;
     double low_lat = curr_lat - 100.0;
     double low_long = curr_longitude - 100.0;
         Cursor cursor = db.query(TABLE_NAME,      new String[]                        {KEY_ID, KEY_NAME, KEY_ADDR, KEY_LAT, KEY_LONG}, select,
        new String[]
                {KEY_LAT + " BETWEEN " + low_lat + " AND " 
                + high_lat + " AND " + KEY_LONG + " BETWEEN " + low_long + " AND " 
                + high_long},
            null, null, null);

最佳答案

将您的输入转换为 REAL 作为最后的手段。

...KEY_LONG + "介于 CAST("+ low_long + "AS REAL) 和 CAST("+ high_long +"AS REAL)"

关于android - 比较 SQLite 中的 Double NOT 字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202334/

相关文章:

android - 删除未使用的资源需要打开未使用的代码收缩

android - 在 android 中将 Realm 版本从 0.82.1 更改为 0.87.5 后发生致命异常崩溃

不同机器上的应用程序访问时的 SQLite 同步

c++ - 似乎无法逃避我发送到我的 sqlite3 数据库的查询,不知道为什么

php - 3个不同的等于

java - 已删除的项目仍显示在“结果”页面上。

android - 动态获取Android权限

sqlite - 如何在 Sqflite for Flutter 中使用准备好的语句

list - 通过一次显示两个项目,根据用户的偏好对列表项目进行排名的最有效方法是什么?

mysql - MySQL 中的空值比较