这是一个剧院座位预订计划。
Seat No Status
1 Booked
2 Available
3 Available
4 Available
5 Available
6 Available
7 Booked
8 Available
9 Available
10 Available
如果有人要订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
这设置为选择四个连续的座位。将“4”的所有实例调整为所需的座位数以获得您想要的。
关于php - 使用 SQL 查询选择连续的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334535/