mysql选择大于或小于多个列的位置

mysql选择大于或小于多个列的位置,mysql,Mysql,我有一个以月和年为列的专栏。。我需要从列中选择一个范围。。它们似乎不适用于2个范围 桌子 Select语句: SELECT * FROM sampletable WHERE AccountId = 1 and (`Month` >= 10 AND `Year` = 2012) and (`Month` <= 2 AND `Year` = 2013) ORDER BY Year asc, month asc 这似乎不起作用 我是否必须将这些转换为日期格式并在之间使用?以实现您想要的

我有一个以月和年为列的专栏。。我需要从列中选择一个范围。。它们似乎不适用于2个范围

桌子

Select语句:

SELECT * FROM sampletable
WHERE AccountId = 1 
and (`Month` >= 10 AND `Year` = 2012)
and (`Month` <= 2 AND `Year` = 2013)
ORDER BY Year asc, month asc
这似乎不起作用


我是否必须将这些转换为日期格式并在之间使用?

以实现您想要的使用或“代替”和。

以实现您想要的使用或“代替”和。

将条件括在括号内并使用或

 and (     
  (`Month` >= 10 AND `Year` = 2012)
 or (`Month` <= 2 AND `Year` = 2013))

将条件括在括号内,并使用或


你所做的事情类似于试图同时向左和向右移动

让我们打破WHERE子句

您正在告诉MySQL使用获取行

年份=2012年和年份=2013年


月份>=10和月份你正在做的事情类似于试图同时向左和向右移动

让我们打破WHERE子句

您正在告诉MySQL使用获取行

年份=2012年和年份=2013年

月份>=10和月份
 and (     
  (`Month` >= 10 AND `Year` = 2012)
 or (`Month` <= 2 AND `Year` = 2013))
SELECT ...
FROM ...
WHERE AccountId = 1  AND   
      ((`Month` >= 10 AND `Year` = 2012) OR  (`Month` <= 2 AND `Year` = 2013) )
WHERE AccountId = 1 
and ((`Month` >= 10 AND `Year` = 2012)
OR (`Month` <= 2 AND `Year` = 2013))