将2个月和年份列合并为不同的标准

时间:2015-02-18 16:49:45

标签: mysql

我在这里有点腌渍。

我正在使用包含monthyear列的表格。

我需要返回(例如)所有列:

  • month为3或更高且year为2014
  • month为2或更低且year为2015

所以基本上都是3-2014到2-2015之间的所有内容

我试过了:

SELECT * FROM table
WHERE student_id = 5
AND ((month >= 3 AND year >= 2014)
AND (month <= 2 AND year <= 2015))

student_id不是唯一的

最后使用ANDOR进行了尝试 OR会返回所有内容,AND会返回任何完全无意义的内容,因为它正在返回我所要求的内容。我也不确定JOIN如何帮助第一个标准返回这些数字之后的所有内容,并且第一个标准会在这些日期之前返回所有内容。

一种选择是创建一个时间戳为月和年的新列并使用它。

但是有没有办法用当前的结构来实现这个只有mysql?

1 个答案:

答案 0 :(得分:1)

所以,如果你真的想让记录在哪里:

 month is 3 or higher AND year is 2014

AND记录在哪里:

 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))