这很难解释所以请耐心等待: 我正在尝试构建一个mySQL查询,该查询将选择第一个记录,但在整数列满足某个差异要求之前,不会选择另一个记录。
例如,如果我要求的差异为10,则应从以下记录中选择标记的结果:IntCol
-------------------
0 *
1
2
3
8
10 *
15
39 *
48
50 *
59
81 *
82
84
88
91 *
100
所以基本上,只有先前选择的记录比当前记录少至少10,才会选择记录。 我所尝试过的任何事情都没有成功。
答案 0 :(得分:2)
是的,可以使用查询变量:
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 |