这是剧院座位预订计划。
Seat No Status
1 Booked
2 Available
3 Available
4 Available
5 Available
6 Available
7 Booked
8 Available
9 Available
10 Available
Run Code Online (Sandbox Code Playgroud)
如果有人要预订6张票,他将获得2至6号座位和8号座位。如果有人只预订5张票,则将获得2至6号座位。
我如何使用SQL查询(或PHP代码)知道相邻席位是否超过要求的席位?
顺序选择座位是我需要实现的主要目标。
尝试这个:
select seat, status
from seats
where seat >= (
select a.seat
from seats a
left join seats b on
a.seat < b.seat and
b.seat < a.seat + 4 and
b.status = 'Available'
where a.status = 'Available'
group by a.seat
having count(b.seat)+1 = 4
)
limit 4
Run Code Online (Sandbox Code Playgroud)
设置为选择四个连续的座位。将所有“ 4”实例调整为所需的座位数即可获得所需的座位。