mySQL select 记录与之前 selected 记录的差异

mySQL select records based on difference to previously selected record

这很难解释,所以请耐心等待: 我正在尝试构建一个 mySQL 查询,该查询将 select 第一条记录,但在整数列满足特定差异要求之前不会 select 另一条记录。

例如,如果我要求的差异是 10,则标记的结果应该 select 从以下记录中编辑:

IntCol
-------------------
0 *
1 
2
3
8
10 *
15
39 *
48
50 *
59
81 *
82
84
88
91 *
100

所以基本上,如果先前 selected 记录比当前记录至少少 10,则记录只会被 selected。 我尝试过的任何事情都没有取得任何成功。

是的,可以使用查询变量:

SQL Fiddle

MySQL 5.6 架构设置:

CREATE TABLE Table1
    (`IntCol` int)
;

INSERT INTO Table1
    (`IntCol`)
VALUES
    (0),
    (1),
    (2),
    (3),
    (8),
    (10),
    (15),
    (39),
    (48),
    (50),
    (59),
    (81),
    (82),
    (84),
    (88),
    (91),
    (100)
;

查询 1:

select intcol FROM
(
  select intcol, Case when intcol - @i >= 10 then @i := intcol else @i end as correctCol
  from Table1, (SELECT @i := 0) r
  order by intcol
) a
WHERE intcol = correctCol
order by intcol

Results:

| intcol |
|--------|
|      0 |
|     10 |
|     39 |
|     50 |
|     81 |
|     91 |