android - SQLite : Select row with closest value but limit the difference between passed value and closest value

标签 android sqlite

假设我有一个包含两列的表,如下所示

  Size  |  Time  |
------------------
  215   |  24868 |
------------------
  105   |  25668 |
------------------
  515   |  64848 |
------------------
  321   |  44808 |

我需要选择 Size 最接近传递值的 Time,例如 X

来自 this answer我有以下查询 (X= 800)

SELECT * FROM my_table ORDER BY ABS(800-Size) LIMIT 1

此查询为我提供了大小为 515 的行,但我需要限制 X 与所选值之间的差异。 例如:如果我传递 800,那么它应该仅在大小介于 750 到 850 之间时返回,否则查询不应返回任何内容。

最佳答案

我是这样操作的

SELECT * FROM my_table where Size >= (800-val) and Size <= (800+val) ORDER BY ABS(800-Size) LIMIT 1

关于android - SQLite : Select row with closest value but limit the difference between passed value and closest value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37605841/

相关文章:

Android - Sherlock ActionBar - 使用 Sherlock Fragments 有什么好处?

java - 访问已完成 Activity 的静态变量。(Android)

android - 如何在 Android 上的 SQLite 中使用 CASE WHEN 对两个字段求和

android - 使用 evothings 插件订阅 BLE 通知

使用 Paho 客户端的安卓 MQTT。无法接收消息

c# - 如何为 SQLite 创建身份服务器数据库?

sqlite - SQLite:“插入或替换”和仅“替换”之间的区别

java - 动态删除查询

android - 来自多个内容提供商的结果的光标 - Android

c# - 难以在 C# 中的 SQLite 数据库上运行并发 INSERTS