sql - 使用或选择最近 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,其他数据还有其他年份。 在此处输入图像描述
解决方案
这是因为您的 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
推荐阅读
- r - R 文件大小(内存)限制:跨 OSX/Ubuntu 的差异
- apache-pig - 猪中的 IN 子句
- javascript - 如何从数组中提取值并将它们存储在另一个数组中?
- typescript - 高阶函数推断的打字稿条件类型
- java - 使用 RxJava 和 Retrofit 每隔 x 分钟调用一次 Rest api
- excel - 通过 VBA 脚本自动修复损坏的 .xlsx 文件数量
- docker - 使用 DinD 在容器之间共享卷
- if-statement - ActionScript 3.0 - 文本字段的 Else If 条件
- graph - 如何按月对 Google Graphs 上的堆积柱形图进行分组
- python - Django crontab 日志:ModuleNotFoundError:没有名为“sslserver”的模块