turbod与他的答案很接近,他只是随机排序,当您似乎想要按pid排序时,在获得所需的随机行以及与A2和A3有关的行之后:
( SELECt * FROM `mytable` WHERe name ='A2' OR name ='A3' LIMIT 2)UNIOn( SELECt DISTINCT * FROM `mytable` WHERe name !='A2' OR name !='A3' ORDER BY RAND( ) LIMIT 2) ORDER BY `pid`

turbod与他的答案很接近,他只是随机排序,当您似乎想要按pid排序时,在获得所需的随机行以及与A2和A3有关的行之后:
( SELECt * FROM `mytable` WHERe name ='A2' OR name ='A3' LIMIT 2)UNIOn( SELECt DISTINCT * FROM `mytable` WHERe name !='A2' OR name !='A3' ORDER BY RAND( ) LIMIT 2) ORDER BY `pid`