2012-07-15 116 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 

這樣我們就加入了一個記錄與之前的記錄。如果兩個記錄的值不同 - 我們有我們的答案。