如果mysql中的条件匹配任何值,则获取记录

时间:2013-10-10 09:35:59

标签: mysql sql

这是我的表格信息,

__测试

id  points   date
1    -50    30.09.2013
2    100    2.10.2013
3    100    3.10.2013
4    200    4.10.2013 

从此我需要选择记录,如果任何值包含基于日期的减分

例如:

select * 
from #__test 
where date between  30.09.2013 to  3.10.2013 

提到查询对于从两个日期之间的记录进入是很常见的。但是我需要两个日期之间的记录,如果任何值包含减去分数。

我该怎么做?请帮助我。

1 个答案:

答案 0 :(得分:0)

我认为这就是你所追求的目标:

SELECT  * 
FROM    #__test t
WHERE   t.Date BETWEEN '20130930' AND '20131003'
AND     EXISTS
        (   SELECT  1
            FROM    #__test t2
            WHERE   t2.Date BETWEEN '20130930' AND '20131003'
            AND     t2.points < 0
        );

它只是检查日期范围内负值的存在,然后返回该日期范围的所有记录(如果找到)。

NB This article可能值得阅读有关使用BETWEEN作为日期范围的信息,还有another article撰写的Aaron Bertrand日期范围查询的进一步阅读