2010-10-05 113 views
3

我曾见过一个同事使用这些条件下,从表中获取的用户:MySQL:使用BETWEEN的多个AND查询?

SELECT * FROM users WHERE gender ='male' 
AND activated='yes' 
AND date_registered BETWEEN '$date1' AND '$date2' 

他说,有一个问题(它不输出时AND activated='yes'放在那里,以及任何行,但没有mysql被抛出的错误。

你能不能做到这一点吗?你需要把它放在括号或一些疯狂关联的BETWEENAND

日期是由方式正确的格式。

+2

我的第一个猜测是,没有行匹配在这种情况下,查询... – JoshD 2010-10-05 19:21:16

回答

7

不,它会工作得很好。但是,您可能要格式化您的查询,以便很清楚这AND是独立的,并属于BETWEEN .. AND ...声明:

SELECT * FROM users 
WHERE gender ='male' 
    AND activated='yes' 
    AND date_registered BETWEEN '$date1' AND '$date2' 
+0

我会提及他对他的进一步任务,我会在我回来后接受你的回答,我需要去! – John 2010-10-05 19:24:40

4

不需要括号。你有正确的语法。

+0

谢谢你,这使得它更容易解释。 – John 2010-10-05 19:24:03