php - 使用 SQL 查询选择连续的数字

标签 php mysql

这是一个剧院座位预订计划。

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/

相关文章:

需要 MySQL 查询建议

mysql - 比较 mysql 中的日期是否需要格式化

php - 如何获取 stdClass 对象 foreach 循环的值

javascript - PHP 使用 AJAX 将数据 POST 到另一个页面

php - 有多个 OR 子句会减慢查询速度吗

php - 如何在codeigniter中计算group_concat

mysql - 复制行及其所有 'children'

javascript - 使用 php 在 cookie 中保存的变量

php - MySQL 在单列中使用 AND

mysql - 查询多个 LIKE 和 NOT IN 条件