2015-04-29 37 views
-1

我有一个这样的查询:MySQL的选择值,其中在(X,Y,Z)场循环输出

select value from table 
where field_id in (52,54,58,59,60,61,62,55,53,132) and item_id = 16 
order by FIELD (field_id,52,54,58,59,60,61,62,55,53,132); 

目前,输出由FIELD_ID分组,所以FIELD_ID 52的所有值都是吐出,然后FIELD_ID 54的所有值,等

有没有办法固有到MySQL循环输出,使每个FIELD_ID一个值输出再回到“四舍五入到开始等待另一次?试图在SQL本机查询中完成它,而不是使用PHP。

+0

什么_one_价值?'max','min'或其他什么东西? – potashin

回答

0

我想你说的目前,输出按field_id分组,,并在这里混淆了大多数人。因为根据你的查询它没有分组。它只是订购。

但你需要它。所以,只是尽量组(将带给每一个FIELD_ID值):

SELECT field_id, MAX(`value`), AVG(`value`) 
FROM `table` 
WHERE field_id IN (52,54,58,59,60,61,62,55,53,132) 
    AND item_id = 16 
GROUP BY field_id 
ORDER BY FIELD (field_id,52,54,58,59,60,61,62,55,53,132); 

,你可以使用任何聚合功能,如MIN,MAX,AVG使用值之一,如果每FIELD_ID多。

相关问题