SQLite:选择具有最接近值的行但限制传递值与最接近值之间的差异

时间:2016-06-03 04:17:42

标签: android sqlite

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

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

我需要选择Time最接近传递值的SizeX

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

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

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

2 个答案:

答案 0 :(得分:3)

我让它像这样工作

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

答案 1 :(得分:0)

SELECT * FROM my_table where size > (800-size) and size < (800+size)

试试这个。让我知道它是否有效。