MySQL 查询之间的操作符与 php 的问题

Posted

技术标签:

【中文标题】MySQL 查询之间的操作符与 php 的问题【英文标题】:Problem on MySQL Query on Between Operator with php 【发布时间】:2019-02-25 06:28:08 【问题描述】:

我有 mysql 表“room_booking”,该表包含两列“start_time”和“end_time”。我想查看会议室预订的时间。假设如果房间是从下午 2:10 到下午 3:15 预订的。那么此时不应插入另一个条目。 我的查询是

$queryCheck = "SELECT start_time,end_time FROM room_booking AND (SELECT * FROM (room_booking) WHERE (start_time NOT BETWEEN '".$new_start_time."' AND '".$end_start_time."') AND (end_time NOT BETWEEN '".$new_start_time."' AND '".$end_start_time."'))";

【问题讨论】:

【参考方案1】:

在我看来这只是重叠范围问题,在这种情况下,您希望返回与输入开始和结束时间重叠的记录。试试这个查询:

SELECT *
FROM room_booking
WHERE existing_end < ? OR existing_start > ?;

对于上面的两个? 占位符,您可以按顺序绑定$new_start_time$end_start_time。因此,您最终会得到以下查询:

SELECT *
FROM room_booking
WHERE existing_end > $new_start_time OR existing_start > $end_start_time;

【讨论】:

【参考方案2】:

你可以用这个:-

INSERT INTO `room_booking` (`room`,`start_time`,`end_time`) 
SELECT 'A','2019-02-25 07:55:00','2019-02-25 08:00:00' FROM `room_booking`
WHERE NOT EXISTS
    (SELECT * FROM `room_booking` WHERE '2019-02-25 07:55:00' BETWEEN `start_time` AND `end_time`)

如果您有任何疑问,请告诉我?

我附上截图解释.

【讨论】:

以上是关于MySQL 查询之间的操作符与 php 的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于wamp的HTML, PHP, mysql 三者的操作与联系 - HTML与PHP之间传值(上)

关于wamp的HTML, PHP, mysql 三者的操作与联系 - HTML与PHP之间传值(下)

PHP操作PDO预处理以及事务

PHP操作PDO预处理以及事务

关于wamp的HTML, PHP, mysql 三者的操作与联系 - mysql简单配置

使用PHP链接MySQL