2015-04-29 66 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多。

相關問題