选择记录它们变成一个系列(MySQL的/导轨)
问题描述:
我有记录一系列的值,像这样一张桌子选择记录它们变成一个系列(MySQL的/导轨)
ID. VAL
1. 18
2. 18
3. 20
4. 20
5. 18
我试图找出如何选择系列变化的记录(例如记录1,3和5)。我正在使用rails,但我猜测原始MySQL可能是前进的方向。
将不胜感激你可以提供任何帮助......
答
假设你的表是这样的:
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
这样我们就加入了一个记录与之前的记录。如果两个记录的值不同 - 我们有我们的答案。