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'
我已经编写了查询,但它不能正常工作。如何编写确切的查询?
【问题讨论】:
startTime
和 endTime
字段的数据类型是什么? DATE
还是 DATETIME
?此外,您的查询引用了start
和end
,而不是您指定的startTime
和endTime
。
您的查询有什么问题?预期的输出是什么?
@KP。上面的查询应该返回零,如果它是否在那天 day_id 是否有任何 startTime 或 endTime 或 1 如果它与 day_id 匹配但在该数据库中没有与该 day_id 匹配的 startTime 和 endTime。
@sbeliv01 是的,两者都是Time
类型
【参考方案1】:
据我了解,您需要 0
或 1
作为输出,请尝试以下查询
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 - 查询如何编写嵌套条件?的主要内容,如果未能解决你的问题,请参考以下文章