代码之家  ›  专栏  ›  技术社区  ›  Matt Rix

如果没有达到限制,我可以使用单个mysql查询来选择不同的行,然后选择非不同的行吗?

  •  0
  • Matt Rix  · 技术社区  · 16 年前

    我希望我能正确地解释这一点,我对MySQL的了解非常有限。

    假设我有一个表,其中的行具有一个名为 形状 .

    我想从一个表中选择一组行,但返回所有具有唯一性的行 形状 首先是字段值。如果我的行数少于一定数量,比如说7行,那么我想用非唯一形状行填充剩余的结果行。我能说的最好的方式是它们是“按唯一性排序,然后按其他值排序”。

    所以,我不想: 广场 , 广场 , 圆圈 , 圆圈 , 矩形 , 广场 , 三角形

    我想要: 广场 , 圆圈 , 矩形 , 三角形 , 广场 , 广场 , 圆圈

    是否可以使用单个SQL查询?我在用MySQL和PHP,如果这有什么区别的话。

    谢谢!

    3 回复  |  直到 16 年前
        1
  •  1
  •   wimvds    16 年前

    在与非唯一查询的联合中,可以首先从不同值的组合中选择有限数量的行(也可以按要检索的最大行数进行限制)。

    也就是说,选择field1,field2,…从(选择distinct field1,field2,…从…联合选择字段1,字段2,…从…限制最大行数)作为总限制最大行数

        2
  •  0
  •   Mitch Dempsey    16 年前

    您可以使用 UNION (即使用两个不同的查询,但只需组合结果)

        3
  •  0
  •   Rik De Peuter    16 年前

    您可以使用union all合并两个不同的(但相同的select)查询。但是我不认为限制对工会起作用,那么你必须:

    在此处选择唯一查询,限制为0,7 联合所有 在此处选择其他查询,限制为0.7

    虽然它们都有相同的选择值,但它们合并成1个结果,然后您可以简单地切断7之后的所有行。

    但也许你已经可以对整个工会做一个限制了,我不知道。