sql >> データベース >  >> RDS >> Mysql

MySQLSelectのロジックを決定する-予約システム

    これについて100%確信はありませんが、このクエリはかなり近いはずだと思います:

    select * from tblEvents
    where (@starttime >= start && @starttime <= end) /* Starts while someone else has it */
    or (@endtime >= start && @endtime <= end) /* Ends while someone else has it */
    or (@startime <= start && @endtime >= end) /* Starts before & ends after someone else has it*/
    and equipID = @equipID
    

    @ starttime、@ endtime、@ equipIDを、ユーザーが入力した適切な機器IDと開始時刻と終了時刻に置き換えます。このクエリが結果を返さない場合は、時間の競合は発生しないはずです。

    基本的に、これらの3つのシナリオをチェックします。ここで、*は開始時間と終了時間、-は未使用時間、|は未使用時間です。他の誰かが使用している時間です:

    -|||||*|||||------*------
    ------*--------|||*||||--
    ------*--|||||||--*------
    


    1. SSMSバージョン18–データベース図なし

    2. PHPでのデータの早期終了エラー

    3. MySQLでのFORMAT()の例

    4. Liquibaseでデータベースを作成する方法