2012-07-15 115 views
0

我有记录一系列的值,像这样一张桌子选择记录它们变成一个系列(MySQL的/导轨)

ID. VAL 
1. 18 
2. 18 
3. 20 
4. 20 
5. 18 

我试图找出如何选择系列变化的记录(例如记录1,3和5)。我正在使用rails,但我猜测原始MySQL可能是前进的方向。

将不胜感激你可以提供任何帮助......

回答

1

假设你的表是这样的:

CREATE TABLE records (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    val INT UNSIGNED NOT NULL 
); 

你想要做什么是自加入它针对其自身,就像这样:

SELECT 
    records2.id 
FROM 
    records AS records1 
    JOIN records AS records2 ON (records1.id = records2.id-1) 
WHERE 
    records1.val != records2.val 

这样我们就加入了一个记录与之前的记录。如果两个记录的值不同 - 我们有我们的答案。