MySql - 查询如何编写嵌套条件?

Posted

技术标签:

【中文标题】MySql - 查询如何编写嵌套条件?【英文标题】:MySql - Query How to write nested condition? 【发布时间】:2016-05-12 03:44:07 【问题描述】:

我有一个表名:allocate_rooms 有 id、room_id、startTime、endTime。

现在我必须找到结果应该返回零的查询 意味着用户将输入作为房间 id 和 startTime 和 endTime,它应该检查该 room_id 中是否有任何 startTime 和 endTime

例如:如果有人将房间名称指定为 sunday,startTime 指定为 12:00:00,endTime 指定为 12:30:00,它将检查周日是否有 startTime 和 endTime 但是,如果他将房间名称设为星期一用户可以保存输入。

SELECT id FROM allocate_rooms
         where startTime='12:00:00' and endTime=' 12:30:00' AND day_id = 'sunday'

我已经编写了查询,但它不能正常工作。如何编写确切的查询?

【问题讨论】:

startTimeendTime 字段的数据类型是什么? DATE 还是 DATETIME?此外,您的查询引用了startend,而不是您指定的startTimeendTime 您的查询有什么问题?预期的输出是什么? @KP。上面的查询应该返回零,如果它是否在那天 day_id 是否有任何 startTime 或 endTime 或 1 如果它与 day_id 匹配但在该数据库中没有与该 day_id 匹配的 startTime 和 endTime。 @sbeliv01 是的,两者都是Time 类型 【参考方案1】:

据我了解,您需要 01 作为输出,请尝试以下查询

SELECT ifnull (id, 0, 1)
FROM allocate_rooms
WHERE startTime='12:00:00' or endTime=' 12:30:00'
     AND day_id = 'sunday'

【讨论】:

但是 day_id 应该是不同的,意味着当天用户如果与 startTime 和 endTime 的数据库不匹配,可以保存其他时间 你应该发布你的输入数据和预期输出 请看我需要检查 startTime 和 endTime 应该与 day_id 匹配,否则条件失败。如果 day_id 匹配但 startTime 和 endTime 不匹配,则条件为 false。

以上是关于MySql - 查询如何编写嵌套条件?的主要内容,如果未能解决你的问题,请参考以下文章

如何编写没有联接的 JPA 2.1 更新条件查询?

如何在一行中编写嵌套的 if-elif-else 条件? [复制]

如何在 ruby​​ on rails 中编写嵌套查询?

如何使用 Laravel 查询构建器编写嵌套连接?

如何在 Linq 中编写嵌套的 Sql 查询 [关闭]

HiveQL:如何编写查询以根据嵌套的 JSON 数组值选择和过滤记录