作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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 + "BETWEEN CAST("+ low_long + "AS REAL) AND CAST("+ high_long +"AS REAL)"
关于android - 比较 SQLite 中的 Double NOT 字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202334/
我是一名优秀的程序员,十分优秀!