Mysql 最后5项或更多项,取决于位置

Mysql 最后5项或更多项,取决于位置,mysql,Mysql,我想运行一个始终返回最后5个条目的查询,这很简单:SELECT*fromtable ORDER BY id DESC LIMIT 5。但如果某个条件适用,我希望得到5个以上的值,这本身就是类似于SELECT*fromtablewherefield>value。有没有一种方法可以作为单个查询来执行此操作,或者我必须运行2?可能需要使用UNION?。比如: (SELECT * FROM table ORDER BY id DESC LIMIT 5) UNION (SELECT * FROM tabl

我想运行一个始终返回最后5个条目的查询,这很简单:
SELECT*fromtable ORDER BY id DESC LIMIT 5
。但如果某个条件适用,我希望得到5个以上的值,这本身就是类似于
SELECT*fromtablewherefield>value
。有没有一种方法可以作为单个查询来执行此操作,或者我必须运行2?

可能需要使用
UNION
?。比如:

(SELECT * FROM table ORDER BY id DESC LIMIT 5)
UNION
(SELECT * FROM table WHERE field > value)

将其作为单个查询有什么好处?没有。您将有一个复杂的SQL,而不是两个简单的查询。组合查询很可能会运行更长时间。恕我直言,您不知道代码。1个SQL语句,在这里我可以循环所有返回的条目,而不需要额外的逻辑来处理2个集合,同时忽略重复项、合并和重新排序,这将大大简化我的代码,即使SQL语句更难。您可能希望澄清您的问题并提供示例数据和预期结果。不清楚您是否打算将这两个查询用作替代方案或组合使用。我假设是前者。我想要最新的5无论什么,除了任何其他符合某些条件。有一个名为id的自动编号字段用于排序。仅仅因为选择了最近的5个,并不意味着它们必须满足条件