我在数据库中有一个包含以下列的表:
- 月份
- 年份
- 姓名
- 某某
- abc
该表将有多个记录,但对月、年和名称的组合有唯一约束。
该表将包含如下数据:
Month Year Name
1) 1 2016 test1
2) 2 2016 test2
3) 3 2016 test3
4) 1 2017 test4
5) 2 2017 test5
现在我想要大于或等于第 3 个月且大于等于 2016 年的记录。 所以输出应该如下所示:
Month Year Name
1) 3 2016 test3
2) 1 2017 test4
3) 2 2017 test5
如何实现。我没有得到任何关于如何做到这一点的提示。我添加了一个 where
子句,月>=3 和年>=2016 但它没有返回任何记录,我认为是正确的,因为我我正在对两个表达式应用 And 条件。
最佳答案
为了产生您在第二个表中描述的结果,我将编写以下查询:
select [Month], [Year], [Name]
from Table -- your table name
where year > 2016 or ( year = 2016 and month >= 3) -- don't forget the parentheses.
我可以从你的结果表中了解到,用文字描述的查询将是:
给我所有年份大于 2017 年的记录(在这种情况下月份无关紧要,给我所有月份)或者如果年份是 2016 年,给我所有大于或等于的月份3(包括 3 月及以后)。不要给我任何年份小于 2016 的记录。
如果这是正确的,那么我上面发布的查询给出了正确的结果。
关于mysql - 如何根据依赖的两列中的条件过滤记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42418414/