提问者:小点点

MySQL multiple ORDER BY条件,每个条件都有限制


我的实体product(映射到表product)具有以下字段:

  • 创建日期(创建日期)
  • NumberOfLikes(收到的赞数)
  • NumberOfComments(收到的评论数)

我需要创建一个分页的仪表板,每个页面中有20个元素(并且没有重复)。 现在我要提取3个不同的查询,然后将以下项目组合在一个列表中:

  • 前10个最新产品(按DESC创建顺序)
  • 前5个最受欢迎的产品(按numberOfLikes DESC排序)<==我将手动从第一个带有的查询中排除id,其中id不在
  • 前5个评论最多的产品(按评论数排序)<==我将手动从第一个和第二个带有的查询中排除id,其中id不在

我想创建一个单一的查询来提取前面的所有20个项目。 有可能吗?

我正在使用MySQL和Doctory(Symfony)一起使用,我会对一个与Doctory兼容的解决方案感兴趣。


共1个答案

匿名用户

我认为不可能在单个查询中完成。 如果总post的数量有限(比如只有100个post在仪表板中可见),我将使用数组方法的组合。