我有一个如下所示的声明样本;
SELECT * FROM abctable WHERE (_variableX >= DATE_SUB(NOW(), INTERVAL 1 MONTH) AND _variableY IS NULL) OR (_variableY > NOW() - INTERVAL 1 MONTH);
我想要完成的是,如果我从OR (_variableY > NOW() - INTERVAL 1 MONTH);
的“或”语句中得到多个结果,我只想获得它的最后一行。
如果我只限制OR
语句,我会收到错误,如果我限制整个语句,那么我只会得到X结果。我会从两个案例中得到多个结果,但我想从(_variableX >= DATE_SUB(NOW(), INTERVAL 1 MONTH) AND _variableY IS NULL)
获得整个结果,我只想从OR (_variableY > NOW() - INTERVAL 1 MONTH);
获取最后一行言。
我怎样才能以最简单的方式管理它?
提前致谢。
编辑:对不起,我忘了提到我只想从第二个陈述中获得每个独特结果的最后一个元素
答案 0 :(得分:2)
你不能一体化。但是结果可以使用union获得:
( SELECT * FROM abctable WHERE (_variableX >= DATE_SUB(NOW(), INTERVAL 1 MONTH) AND _variableY IS NULL) )
UNION
( SELECT * FROM abctable WHERE (_variableY > NOW() - INTERVAL 1 MONTH) AND _variableY in (SELECT max(_variableY) from abctable group by username)
)