具有多个LIMITS的MySQL查询

Ala*_* M. 5 mysql select limit

假设我的下表中有数百种不同颜色的玩具......

---------------------------
  ITEM  |  COST  |  COLOR
---------------------------
    1   |  12.00 |  BLUE
    2   |  10.98 |  RED
    3   |   9.34 |  BLUE
    4   |  11.33 |  WHITE
    5   |   8.00 |  YELLOW
    .   |    .   |    .
    .   |    .   |    .
    .   |    .   |    .
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM TOYS WHERE Color = 'BLUE' ORDER BY COST LIMIT 3;
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法可以选择一个具有独特数量的最低价黄色,白色和蓝色玩具,就像我说的那样......

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

是否可以在MySQL中完全执行此操作而无需在PHP中遍历数组?

Spa*_*rky 8

为什么不?

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)
Run Code Online (Sandbox Code Playgroud)