我在这里有点腌渍。
我正在使用包含month
和year
列的表格。
我需要返回(例如)所有列:
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
不是唯一的
最后使用AND
和OR
进行了尝试
OR
会返回所有内容,AND
会返回任何完全无意义的内容,因为它正在返回我所要求的内容。我也不确定JOIN
如何帮助第一个标准返回这些数字之后的所有内容,并且第一个标准会在这些日期之前返回所有内容。
一种选择是创建一个时间戳为月和年的新列并使用它。
但是有没有办法用当前的结构来实现这个只有mysql?
答案 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))