我现在有点麻烦。
我正在使用一个包含月
和年
列的表格。
我需要返回(例如)所有列:
月份
为 3 或更高且年份
为 2014 年- 并且
月份
为 2 或更低且年份
为 2015
所以基本上是从 2014 年 3 月到 2015 年 2 月的所有内容
我尝试过:
SELECT * FROM table
WHERE student_id = 5
AND ((month >= 3 AND year >= 2014)
AND (month <= 2 AND year <= 2015))
student_id
不唯一
尝试在末尾使用 AND
并使用 OR
OR
返回所有内容,AND
不返回任何内容,这完全有意义,因为它返回的正是我所要求的内容。我也不确定 JOIN
将如何帮助第一个条件返回这些数字之后的所有内容,而第一个条件返回这些日期之前的所有内容。
一种选择是创建一个带有月份和年份时间戳的新列并使用它。
但是有没有一种方法可以通过当前的结构仅使用 mysql 来实现这一点?
最佳答案
因此,如果您确实想在以下位置记录:
month is 3 or higher AND year is 2014
并记录其中:
month is 2 or lower AND year is 2015
那么你想要
SELECT * FROM table
WHERE
student_id = $id
AND ((month >= 3 AND year = 2014)
OR (month <= 2 AND year = 2015))
关于mysql - 将 2 个月份和年份的列与不同的条件相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589108/