假设我们有一个这样的表:
(ID, StartDate, EndDate, SubjectID)
(1, '2018-01-01', '2018-02-01', '1')
(2, '2018-03-01', '2018-04-01', '1')
(n, '2018-06-01', '2018-06-15', '1')
对于指定的日期(例如“ 2018-04-04”),我要检查此日期是否在该主题的任何现有范围内。如何在Mysql中做到这一点? 问题在于每个主题的范围数是可变的(每个主题可以有1到n行(范围))。
答案 0 :(得分:2)
您可以使用mysql中的“大于等于”和“小于等于”过滤器轻松获得所需的输出。 只需将查询放置为
Select SubjectID From your_table
Where StartDate <= '2018-04-04'
AND EndDate >= '2018-04-04';
应该可以解决问题。 干杯。
答案 1 :(得分:1)
您可以简单地执行以下操作:
SELECT DISTINCT SubjectID FROM table_name WHERE StartDate < '2018-04-04'
AND EndDate > '2018-04-04';