MySql随机类限制选择

时间:2009-10-18 12:15:24

标签: sql mysql

我正在尝试创建一个查询,为第一个类别选择一个项目,为第二个类别选择两个项目,为其他项目选择一个项目。

问题是它必须是一个查询。我认为这是可能的,但我无法理解。

2 个答案:

答案 0 :(得分:1)

听起来你需要SQL UNION operator。正如评论中所提到的,我们需要知道你的表格是什么样的,以提供更多的帮助。

答案 1 :(得分:0)

此:

SELECT *
  FROM (SELECT i.*
          FROM ITEM i
         WHERE i.categoryid = 1
         LIMIT 1),
       (SELECT i.*
          FROM ITEM i
         WHERE i.categoryid = 2
         LIMIT 2),
       (SELECT i.*
          FROM ITEM i
         WHERE i.categoryid = 3
         LIMIT 2)

...将为第一类选择一项,为第二类选择两项,为第三类选择2项。我使用UNION ALL而不是UNION,因为它不会删除重复项,因此速度更快。如果不了解有关数据模型的更多信息(涉及的表格),很难说哪种方法最有效。