PHP MySQL查询语法

4

我在我的表格上有这些字段

month
year

我想基于这个进行查询

month BETWEEN 4 AND 12 AND year = 2008

或者

month BETWEEN 1 AND 10 AND year is greater than 2008 but equal or less than 2009

我尝试了这个,但是没有得到正确的查询结果。
"WHERE month BETWEEN 4 AND 12 AND year = 2008 OR month BETWEEN 1 AND 10 AND year 2008<=2009";

注意:这里的数字是可变的,我为了让您更容易理解展示了实际数字 :) 有需要帮助吗?

year = (2008<=2009) 表示年份必须大于2008,但小于等于2009。


year = (2008<=2009) 的意思是什么? - xdazz
year = (2008<=2009) 的想法是什么?你想表达什么条件? - Havelock
1
@xdazz,havelock,Uttara,我已经在我的编辑中回答了你们的问题。 :) - Sam San
1
year = (2008<=2009)дјҡеҫ—еҲ°year = (1)пјҢеӣ жӯӨз»“жһңдёәFALSEгҖӮеҪ“еңЁиҜҘиҜӯеҸҘе‘ЁеӣҙжІЎжңүдҪҝз”Ё()ж—¶пјҢдҪҝз”ЁORж—¶иҰҒе°ҸеҝғгҖӮеңЁдёҠиҝ°жғ…еҶөдёӯпјҢеҰӮжһңд»…month BETWEEN 1 AND 10дёәTRUEпјҢеҲҷе®ғеҸҜд»Ҙиҝ”еӣһдёҖиЎҢгҖӮ - Robin Castlin
@IvorySantos 如果 2008 < x <= 2009 并且 x 是整数 => x == 2009 - Nir Alfasi
显示剩余3条评论
5个回答

10

试试这个:

where (year*100)+month between  200804 and  200910

这将处理所有情况...即使年份之间的差异超过一年


5
"WHERE ((month BETWEEN 4 AND 12) AND year = 2008) OR ((month BETWEEN 1 AND 10) AND (year 2008 OR 2009))";

希望这能帮到您:)

2

你应该这样做,

WHERE (year = 2008 AND month BETWEEN 4 AND 12) 
       OR
      (year > ? AND year <= 2009 AND 
       month BETWEEN 1 AND 10)

你的意思是什么?“大于2008但等于或小于2009”。你的意思是等于“2009”吗?

year = (2008<=2009) 的意思是年份必须大于2008,但小于等于2009。 - Sam San
什么?大于2008的数字是2009及以上。你还有第二个条件小于或等于2009。因此,值为“2009本身”。 - John Woo
@IvorySantos 你刚才写的意思是年份必须是2009年。 - Nir Alfasi
我认为你的意思是除了2008年之外,下面应该是2009年。对吧,@IvorySantos? - John Woo
@IvorySantos 我刚刚更新了答案。只需将“?”更改为您想要的年份即可。希望现在能帮到您。 :D - John Woo

1

它应该像这样工作:

WHERE ((month BETWEEN 4 AND 12) AND year = 2008) OR ((month BETWEEN 1 AND 10) AND year = 2009)

1
AND year 2008<=2009 是什么意思? - xdazz
year = (2008<=2009) 的意思是年份必须大于2008,但小于等于2009。 - Sam San

1

如果鞋子足够重和坚硬,它可能会起作用...哈哈 - Jake Armstrong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接