我的示例表如下。我有4个苹果,第一个苹果和第二个苹果之间有两排,第二个苹果和第三个苹果之间有一排,第三个苹果和第四个苹果之间有两排。是否可以通过Mysql了解每个苹果与下一个苹果之间的行数。
id fruit
1 berry
2 apple
3 bananan
4 berry
5 apple
6 berry
7 apple
8 berry
9 berry
10 apple
答案 0 :(得分:5)
这将计算每个苹果与下一个苹果之间的ID差异。
SELECT a.id, MIN(b.id)-a.id AS diff
FROM yourTable AS a
JOIN yourTable AS b ON a.id < b.id
WHERE a.fruit = 'apple'
AND b.fruit = 'apple'
GROUP BY a.id
请注意,如果ID序列中存在空白,则会计算差异中缺少的ID。