gpt4 book ai didi

mysql - 插入日期时间字段,间隔不重复

转载 作者:行者123 更新时间:2023-11-30 21:49:10 25 4
gpt4 key购买 nike

我有一张电视节目表,在这张表中有几列,一列是开始时间,一列是结束时间。如果你想插入不能同时放 2 个电视节目的电视节目,我需要做到这一点,就像在真正的电视中一样。

表电视节目有列:tvshow_id、名称、描述、开始时间、结束时间。我想通过表格插入信息,但如果已经有与另一个电视节目重叠的电视节目,则无法将其插入数据库,您需要更改时间。

我解决这个问题的尝试:

$sql = "SELECT ...";
$result = mysqli_query ($link, $sql);

if(mysqli_num_rows($result) > 0) {
echo "Change datetime";
} else {

$sql = "INSERT ...";
}

最佳答案

首先:最好有Priority在你的 table 上,它可以帮助你订购电视节目。您可以使用此字段轻松控制重叠。

假设您有:

电视节目表

tvshow_id, name, description, startime, finishingtime

和你所有的tvshows插入的记录没有重叠。

您的新记录(带有 newStarttimenewFinishingtime )不应与任何现有记录重叠。

解决方案 1:您的新记录应该是现有记录范围的外部范围。

Select * from tvshows t
Where (newStarttime>=t.finishingtime AND newFinishingtime>t.finishingtime) OR
(newFinishingtime<=t.starttime AND newStarttime<t.starttime )

解决方案 2:所以你应该检查这些条款:

  1. 状态 1:newStarttime不应任何记录的范围内。

NOT(newStarttime>=t.strattime AND newStarttime<t.finihingtime)

  1. 状态 2:newFinishing时间不应在任何记录的范围内。

NOT(newFinishing >t.strattime AND newFinishing <=t.finihingtime)

  1. 状态 3:您的新范围不应与现有范围重叠

NOT(newStarttime<t.strattime AND newFinishing >t.finihingtime)

关于mysql - 插入日期时间字段,间隔不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48033686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com