1,结果是找到连续的数据记录
2,解题方法:
1)找到符合条件的数据,并通过id排序
SELECT
id,
date,
people,
(@b :=@b + 1) AS c
FROM
studio a,
(SELECT @b := 0) tmp_b
WHERE
people > 10;
2) 用自增id-排序数
SELECT
id,
date,
people,
(id -(@b :=@b + 1)) AS c
FROM
studio a,
(SELECT @b := 0) tmp_b
WHERE
people > 10;
3)找到符合条件的id
SELECT
IF (
COUNT(id),
GROUP_CONCAT(id),
NULL
) AS e
FROM
(
SELECT
id,
date,
people,
(id -(@b :=@b + 1)) AS c
FROM
studio a,
(SELECT @b := 0) tmp_b
WHERE
people > 10
) AS result
GROUP BY
c;
4)连续的自增id个数大于等于3,找到id
SELECT
IF (
COUNT(id) >= 3,
GROUP_CONCAT(id),
NULL
) AS e
FROM
(
SELECT
id,
date,
people,
(id -(@b :=@b + 1)) AS c
FROM
studio a,
(SELECT @b := 0) tmp_b
WHERE
people > 10
) AS result
GROUP BY
c;
5)通过id,返回结果
SELECT
id,
date,
people
FROM
studio,
(
SELECT
IF (
COUNT(id) >= 3,
GROUP_CONCAT(id),
NULL
) AS e
FROM
(
SELECT
id,
date,
people,
(id -(@b :=@b + 1)) AS c
FROM
studio a,
(SELECT @b := 0) tmp_b
WHERE
people > 10
) AS result
GROUP BY
c
) AS final
WHERE
FIND_IN_SET(id, final.e);
最终结果就是需要的数据。