代码之家  ›  专栏  ›  技术社区  ›  Alan M.

多限制MySQL查询

  •  3
  • Alan M.  · 技术社区  · 15 年前

    假设我有一张桌子,上面有成百上千种不同颜色的玩具。。。

    ---------------------------
      ITEM  |  COST  |  COLOR
    ---------------------------
        1   |  12.00 |  BLUE
        2   |  10.98 |  RED
        3   |   9.34 |  BLUE
        4   |  11.33 |  WHITE
        5   |   8.00 |  YELLOW
        .   |    .   |    .
        .   |    .   |    .
        .   |    .   |    .
    

    如果我想选择三个价格最低的蓝色玩具,我当然可以写。。。

    SELECT * FROM TOYS WHERE Color = 'BLUE' ORDER BY COST LIMIT 3;
    

    但是,有没有一种方法,我可以选择一个独特的指定数量的最低价格的黄色,白色,蓝色玩具,好像我是说。。。

     SELECT * FROM TOYS WHERE COLOR = 'YELLOW' (LIMIT 1) AND COLOR = 'WHITE' (LIMIT 3) AND COLOR = 'BLUE' (LIMIT 2) ORDER BY COST
    

    在MySQL中不必遍历PHP中的数组就可以完成这项工作吗?

    3 回复  |  直到 15 年前
        1
  •  8
  •   Sparky    15 年前

    为什么不呢?

    select * from toys where color = 'Yellow' (LIMIT 1)
    UNION
    select * from toys where color = 'White' (LIMIT 3)
    UNION
    select * from toys where color = 'Blue' (LIMIT 2)
    
        2
  •  0
  •   Filipe YaBa Polido    15 年前

    嗯,IMHO,这里给了您两个选项,不过,我还是要合并数组,因为它不会占用像UNION这样的太多时间/系统资源。 (基于此,您已经说过表有很多行)

        3
  •  -1
  •   riotera    15 年前

    对我来说,解决方案是在PHP中创建3个不同的查询并合并3个数组