首页 > 解决方案 > 使用或选择最近 30 天无效的数据

问题描述

我试图获取最后 30 天的数据,然后我通过点击订购,因为我想获得最近 30 天的数据趋势。

SELECT *, 
       category.title AS nama_kategori 
FROM   category 
       join posting 
         ON category.alias = posting.id_category 
WHERE  DATE BETWEEN Now() - interval 30 day AND Now() 
       AND id_category LIKE '%gga%' 
        OR id_category LIKE '%wstb%' 
ORDER  BY posting.hit DESC 

此查询的输出是 30 天(自 10 月 1 日起)的数据不是 las,其他数据还有其他年份。 在此处输入图像描述

标签: sql

解决方案


这是因为您的 OR 查询id_category LIKE '%wstb%' 将返回具有该类别的所有条目,而不管您的日期查询如何。

在 AND 查询上添加括号并传递多个 OR 条件

SELECT *, 
       category.title AS nama_kategori 
FROM   category 
       join posting 
         ON category.alias = posting.id_category 
WHERE  DATE BETWEEN Now() - interval 30 day AND Now() 
       AND (id_category LIKE '%gga%' 
        OR id_category LIKE '%wstb%') 
ORDER  BY posting.hit DESC 

推荐阅读