我需要一些幫助來查詢。找到最後一個連續的行
我有這個簡單的表:
CREATE TABLE `consecutiv` (
`id` int(11) NOT NULL auto_increment,
`readVal` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;
insert into `consecutiv`(`id`,`readVal`) values (1,2),(2,2),(3,2),(5,3),(6,3),(7,3),(8,3),(9,4),(10,5),(11,6),(12,6),(13,2),(14,2),(15,6);
是這樣的:
id readVal
1 2
2 2
3 2
5 3
6 3
7 3
8 3
9 4
10 5
11 6
12 6
13 2
14 2
15 6
我想對於一個給定readVal最後連續行:
在上面的例子將是:
id:3 for readVal = 2
ID:8 readVal = 3
...
我試圖與此查詢:
SELECT consecutiv.id, consecutiv.readVal, c.id, c.readVal FROM consecutiv
JOIN consecutiv c ON consecutiv.id = c.id-1
WHERE consecutiv.readVal!=c.readVal ORDER BY consecutiv.id ASC
而且只要沒有缺少ID系列中的它的工作原理。在上面的示例中,缺少4號,查詢不會返回預期的結果。
謝謝!
你說你希望'ID: 3 for readVal = 2'肯定最後一個連續的是13/14? – 2010-06-22 11:08:16