Sql 如何在同一年的几个月内过滤多个条件?
我想在2017年5月和6月的交易中筛选我的数据库。以下是我的语法,但它是错误的:Sql 如何在同一年的几个月内过滤多个条件?,sql,mysql-workbench,Sql,Mysql Workbench,我想在2017年5月和6月的交易中筛选我的数据库。以下是我的语法,但它是错误的: SELECT order_buyer.buyer_id FROM order_buyer WHERE month(createdAt)=5 AND month(createdAt)=6 AND year(createdAt)=2017 GROUP BY order_buyer.buyer_id; 这是因为您的查询无效,请记住SQL是基于询问逻辑问题的,您正在询问以下问题: “请给我订单的买家ID
SELECT
order_buyer.buyer_id
FROM order_buyer
WHERE month(createdAt)=5
AND month(createdAt)=6
AND year(createdAt)=2017
GROUP BY order_buyer.buyer_id;
这是因为您的查询无效,请记住SQL是基于询问逻辑问题的,您正在询问以下问题: “请给我订单的买家ID,该订单的月份是5和6?” 这是不可能的,因为没有记录可以是“MayJune”,并且取决于您的平台,它要么会出错,要么会忽略where子句 此查询需要使用OR语句:
SELECT
order_buyer.buyer_id
FROM
order_buyer
WHERE
(
month(createdAt)= 5
OR month(createdAt)= 6
)
and year(createdAt)= 2017
GROUP BY
order_buyer.buyer_id;
我相信这应该行得通,让我知道你进展如何!:从你的描述中我了解到,你想要五月和六月的所有记录。因此,在您的查询中,where子句应该如下所示,其中(月(createdAt)=5或月(createdAt)=6)和年(createdAt)=2017年按订单分组\u buyer.buyer\u id;运算符在逻辑上类似,即两个条件都应为真,这是不可能的,日期只能有一个月。希望我能澄清这一点。你可以参考这个linkhttps://www.techonthenet.com/mysql/and_or.phpthankyou 听你的建议,但当我尝试时,它变成了5月和6月或5月/6月出现的随机数据。你可以显示一些样本数据,以及预期的输出